Network Architecture

Your network architecture design will either propel your software forward, or hold it back like an anchor.  The best network architecture designs are:

  • Reliable
  • Scalable
  • Secure
  • Easy to Maintain

Network Architecture Reliability

A reliable network architecture can be counted on to perform its job.  There should be no single point of failure, meaning if a Database Server unexpectedly crashes, as an example, the network continues running and serving its purpose, rather than crumbling and throwing up error pages.

A reliable network architecture will stand the tests of time.  If the datacenter burns to the ground, a properly designed network architecture will be fully recoverable, given some time to rebuild it from offsite snapshots and/or backups.  The most reliable networks can survive a datacenter meltdown with zero down time, spreading their traffic handling capabilities and data across multiple datacenters typically in different geo-areas.

Reliability is not binary, but rather, there are varying degrees.  To survive a natural disaster, your data may need to be stored across the globe, always being maintained and synchronized.  This can be pricey.  So when talking about network reliability, it’s all about finding the sweet spot that gets your business an acceptable level of reliability while keeping the costs under control.

Sample Network Architecture Diagram
Sample Network Architecture Diagram

In this Network Architecture Diagram, we see the network is very reliable.  Any one component can fail, and the network will keep humming along just fine.  If the primary database server crashes, there are systems in place to automatically point all SQL traffic at the primary slave server, instead, and all of the business-critical data is being synchronized to a Disaster Recovery Site on the other side of the country, so the business can survive natural disasters.

Network Architecture Scalability

A scalable network architecture rises and sinks with the traffic tides.  As any successful start-up can lament, when you get that first break and have an article published on a high volume website, floods of traffic come pouring into your website and SaaS, and if your network architecture is not scalable, the servers crash and you miss your golden opportunity.

The same thing happens to mature business, too.  Regardless of the size or age of your company, a scalable network architecture will ensure that when the window of opportunity opens, your network is there to serve up the best user experience possible.

In the old days, disk space – and hardware in general – was expensive, so engineers would build servers with the minimal amount of resources.  Then marketing launched a successful campaign that caused a surge in traffic, and then there was a PR nightmare.  These days, this should never happen, as it’s easy to avoid with a good network design.

Need more processing power?  No problem, spin up a few more Cloud Servers.
Need more memory?  No problem, upgrade the existing Cloud Servers.
Need more Disk Space?  No problem, just allocate more within the cloud.

Every single component within the network can be made reliable and scalable, in a well thought network architecture design.

Sample Network Architecture Diagram
Sample Network Architecture Diagram

Again, in this Network Architecture Diagram, we can see the network is scalable.  If a flood of traffic comes in, the network will automatically provision additional Web Servers to handle the additional traffic.  As the traffic ramps up, the load on the databases will start to grow.  After reaching a predefined threshold, additional slave databases will be provisioned, and the system is preemptively smart enough to send Write queries to the Master DB, and Read queries to the pool of Slave DBs.

Network Architecture Security

Your network architecture should be like a bank vault – one door in and out, made out of 12” steel, and only employees and trusted customers allowed to enter.

A good network design will have multiple “Layers” integrated, each with varying levels of access to data, and systems in place to protect each.  Hardware firewalls are a must, and it’s good practice to have software firewalls running on every node within the network.

Passwords are vulnerable.  No matter how many times you tell your employees to use tough passwords, there’s always one joker..

username:  dave
password:  iLoveSoftware

Security is no laughing matter, however, which is why only something along the lines of RSA Public/Private keys using 2048 bit encryption should be used to allow network access.

It’s also important to have monitors and scanners identifying threats in real-time and taking defensive measures.  Honeypots work well, too, as does limiting access only to those who need it, and from a whitelist of IP Addresses when possible.

The most common cause of a network intrusion by far is outdated packages running in the operating system.  This has more to do with network and server maintenance, but from the security standpoint, it is absolutely critical that you have your operating system fully patched and running the latest versions of all the different packages.

Network Maintenance

Ongoing network architecture maintenance is very often overlooked during the design phase, which is a massively expensive mistake!  With a solid network architecture, coupled with some great software automation, the maintenance of a network can be handled by an onDemand company such as Software Development Professionals, rather than hiring a dedicated employee.  And for large and complex networks, the headcount of your IT department can be greatly reduced by having the proper design and automation tools in place.  A solid network architecture coupled with the right automation and tools can dramatically reduce your company’s IT budget.

When it comes to deploying new versions of your software, most software developers cringe at the idea of connecting to the server(s) and doing the actual deployment.  It’s not in their blood.  Software developers develop software – they are not network and system administrators.  Having the right network architecture design in place, together with the right suite of tools, we can make it dead simple for software developers to manage their deployments without having to learn an entirely new skillset.

Down time is never a good time.  With the right network architecture, we can completely eliminate downtime during software deployments.

[siteorigin_widget class=”SiteOrigin_Widget_Cta_Widget”][/siteorigin_widget]