Clustering — linking two or more servers to work together as a single system to handle variable workloads or to provide continued operation in the event one fails — has been around since the earliest computing days. As the amount of data flowing through a company’s systems increases, clustering becomes more necessary because one server can’t handle the increasing load. Inevitably, growing companies need to start expanding horizontally, both in terms of applications and databases, with more servers that are connected together. That way one server’s failure will not cause downtime because the others can jump in and pick up the slack.
Clustering used to be specialized, requiring nearly identical computers and special operating system versions to stay synchronized, as well as special networking adapters to move data at high speeds between computers. As the popularity of cloud computing has grown, however, clustering in the cloud has become a reality. You can virtualize your clustering efforts and, with a third-party cloud provider, get those resources off your IT department’s plate entirely.
In addition, you get the benefits of the cloud by building the cluster within it. Whether in the cloud or on premise, there are important reasons to take advantage of clustering.
The ability of a system or network to handle 1,000 customers instead of 100 is essential to accommodate business growth. However, there is no server that will simply scale up. There are limitations in terms of memory and CPU. Instead, it’s time to grow horizontally.
For nearly any business providing a product or service to clients, a top-notch website or some other application, performance is essential. If you only have a single server to service your website and it goes down, the site will be gone. By clustering, especially in the cloud, you guarantee much higher availability. In addition, clustering enables you to serve traffic even if you are dealing with an underlying network or server issue. If you need to deploy application updates, clustering enables you do so without causing any impact to your end users.
A cluster is architected correctly across data centers and providers can be accessed 24/7 by staff, who can do updates at any time. This creates a better environment for employees, who no longer have to wait until off-hours to do their work, as well as for users, who won’t experience any downtime or disruption.
Here are examples of how Peak 10 customers have implemented clustering on top of our highly available cloud infrastructure:
Scaling a Web Site Horizontally
Many customers have used a configuration where a load balancer provides horizontal scaling for a web application cluster. The load balancer can be a virtual appliance or a physical device that sends traffic to a set of servers. This allows the web application to sustain more traffic during high volume events. It also provides the flexibility to upgrade the application stack or apply OS patches on the web host but still provide a failback to the previous application build or OS version. The maintenance activities can be executed while the web-facing application is still available to the end users by rolling one update at a time through each server.
Implementing High-Availability Databases
Microsoft SQL Environments from 2012 and on can easily be clustered on top of Peak 10’s high availability infrastructure. New techniques do not require special quorum drives to be exposed to the virtual machine, which makes clustering well suited in the cloud infrastructure. These features allow SQL servers to be scaled in both an active/passive or active/active model. If applications allow for separation of read-versus-write operations, the SQL environment can be scaled horizontally to provide higher throughput to the application that is consuming the databases.