Archive for the ‘Load Balancer’ Category


Architecting for High Availability in the Cloud

Tuesday, July 22nd, 2014 by

An introduction to multi-cloud distributed application architecture

In this blog, we’ll explore how to architect a highly available (HA) distributed application in the cloud. For those new to the concept of high availability, I’m referring to the availability of the application cluster as well as the ability to failover or scale as needed. The ability to failover or scale out horizontally to meet demand ensures the application is highly available. Examples of applications that benefit from HA architectures are databases applications, file-sharing networks, social applications, health monitoring applications, and eCommerce websites. So, where do you start? The easiest way to understand the concepts is simply to walk through the 3 steps of a web application setup in the cloud.

Step 1: Setting up a distributed, fault-tolerant web application architecture

In general, the application architecture can be pretty simple: perhaps just a load-balanced web front end running on multiple servers and maybe a NoSQL database like Cassandra. When you’re developing, you can get away with a single server, but once you move into production you’ll want to snapshot your web front end and spread the application across multiple servers. This approach lets you balance traffic and scale out the web front end as needed. In GoGrid, you can do this for free using our Dynamic Load Balancers. Point and click to provision the servers as needed, and then point the load balancer(s) to those servers. The process is simple, so setting up a load-balanced web front end should only take a few minutes. Any data captured or used by the servers will of course be stored in the Cassandra cluster, which is already designed to be HA.


Deploying the Cassandra cluster. In GoGrid, you can use our 1-Button Deploy™ technology to set up the Cassandra cluster in about 10 minutes. This will provision the cluster for your database. Cassandra is built to be HA so if one server fails, the load is distributed across the cluster and your application isn’t impacted. Below is a sample Cassandra cluster. A minimal deployment has 3 nodes to ensure HA and the cluster is connected via the private VLAN. It’s a good idea to firewall the database servers and eliminate connectivity to the public VLAN. With our production 1-Button Deploy™ solution, the cluster is configured to include a firewall on-demand (for free). In another blog post I’ll discuss how to secure the entire environment: setting up firewalls around your database and your web application as well as working with IDS and IPS monitoring tools and DDoS mitigation services. For the moment, however, your database and web application clusters would look something like this:


(more…) «Architecting for High Availability in the Cloud»

How Software Defined Networking Delivers Next-Generation Success

Wednesday, June 5th, 2013 by

Software defined networking (SDN) is today where the cloud was a few years ago, and their paths are quite similar. As cloud providers innovate, they incorporate new, cutting-edge technology to let users do more with their architectures and enable solutions that were previously impossible. Just as the cloud moved people away from physical boxes and bare metal devices, SDN is allowing developers and architects to divorce themselves from proprietary hardware appliances like load balancers and firewalls.

So, what are the similarities between SDN and cloud? How about abstraction or the movement from physical to virtual?

To get a bit more scientific, I jumped over to Google Trends (which looks at search term volume over time) and did a search for “cloud,” “SDN,” “cloud computing,” and “software defined networking.”


The results shown here make it pretty obvious that “cloud” continues to grow and overshadow the other terms. Removing “cloud” shows “SDN” making the same upward trajectory as “cloud” does in the graphic below. (Because people have been shortening the term “cloud computing” to simply “cloud,” it’s logical that the term’s search volume is decreasing.)


(more…) «How Software Defined Networking Delivers Next-Generation Success»

How To Create an Auto-Scaling Web Application on GoGrid (Part 1 – Theory)

Tuesday, April 23rd, 2013 by

Creating an auto-scaling web application is an ideal use of cloud computing. Although manually scaling your infrastructure is easy in the GoGrid cloud, programmatically controlling your infrastructure to scale automatically is an even better example of the power of the cloud. This scenario–an application that can increase and decrease its server count, and therefore capacity, based on the load it’s experiencing at any given time–makes IT professionals, sysadmins, and application developers alike extremely happy. And it’s also something you can build using out-of-the-box tools in GoGrid.

We’ve divided this topic into two articles:

Part 1 (this article) – The Theory of Auto-Scaling:

  • Background: traditional vs. cloud hosting
  • Programmatically architecting a solution
  • The underlying Orchestration methodology

Part 2 – A Proof of Concept of Auto-Scaling:

  • Do-it-yourself Orchestration
  • Proof-of-concept examples

(more…) «How To Create an Auto-Scaling Web Application on GoGrid (Part 1 – Theory)»

How To Create a Distributed, Reliable, & Fault-Tolerant GoGrid Dynamic Load Balancer

Tuesday, February 26th, 2013 by

As Rupert Tagnipes outlined in his article “High Availability with Dynamic Load Balancers,” crafting a fault-tolerant, reliable website is critical to a company’s online success. There’s nothing worse than going to a website to do a transaction only to have it either be slow to respond or have an interaction time out. By setting up a load balancer in front of transactional web or application servers, companies can ensure their web presence is resilient, responsive, and gets information to their customers reliably.


GoGrid launched with a free load-balancing service in 2008. This year, we introduced our next-generation cloud load-balancing service on GoGrid. Embracing the software-defined networking (SDN) mantra, we created our load-balancing service to embrace the key characteristics of cloud computing: on-demand, usage-based, and distributed. I encourage you to read more about our Dynamic Load-Balancing service in Rupert’s article.

Although understanding why load balancing is critical to success is important, knowing how to create a new GoGrid Dynamic Load Balancer is equally important. This How-To article will guide you quickly and easily down that path.


As always, I like to boil the process down to 3 easy steps. In the case of the Dynamic Load Balancer creation process, these steps are:

(more…) «How To Create a Distributed, Reliable, & Fault-Tolerant GoGrid Dynamic Load Balancer»

High Availability with Dynamic Load Balancers

Monday, February 4th, 2013 by

Building out a highly available website means that it is fault-tolerant and reliable. A best practice is to put your web servers behind a load balancer not only to distribute load, but also to mitigate the risk of an end user accessing a failing web server. However, traditional load balancing funnels traffic into a single-tenant environment—a single point of failure. A better practice is to have a distributed load balancer that takes advantage of the features of the cloud and increases the fault-tolerance abilities on the load balancer. GoGrid’s Dynamic Load Balancer service is designed around a software-defined networking (SDN) architecture that turns the data center into one big load balancer.


GoGrid’s Dynamic Load Balancer offers many features, but one of its core features is high availability (HA). It is HA in two ways.

First, on the real server side, deploying multiple clones of your real servers is a standard load-balancing practice. That way, if one of your servers goes down, the load balancer will use the remaining servers in the pool to continue to serve up content. In addition, each GoGrid cloud server that you deploy as a web server (in the real server pool) is most likely on a different physical node. This setup provides additional protection in the case of hardware failure.

Second, on the Dynamic Load Balancer side, the load balancers are designed to be self-healing. In case of a hardware failure, Dynamic Load Balancing is designed to immediately recover to a functioning node. The Virtual IP address of the Dynamic Load Balancer (the VIP) is maintained as well as all the configurations, with all the changes happening on the back end. This approach ensures the Dynamic Load Balancer will continue to function with minimal interruption, preventing the Dynamic Load Balancer from being a single point of failure. Because the load balancer is the public-facing side of a web server, whenever it goes down the website goes down. Having a self-healing load balancer therefore makes the web application more resilient.

Users with websites or applications that need to always be available would benefit from including GoGrid’s Dynamic Load Balancing in their infrastructure. The load balancer is important for ensuring the public side of a service is always available; however, including easily scalable cloud servers, the ability to store images of those servers in persistent storage, and the option to replicate infrastructure between data centers with CloudLink are all important elements of a successful HA setup.

(more…) «High Availability with Dynamic Load Balancers»