Put Some Thunder into that Cloud
Cloud computing lacks performance
Cloud computing, by design, is intended for economies of scale. As I have blogged before in the past (see 10 Reasons why Cloud Computing is “Too Awesome”), the cloud has many benefits, but performance is not one of them (see Gripe #2 of Top 10 Cloud Computing Complaints). With so many applications moving into the cloud and so many companies taking cloud initiatives, it is absolutely imperative that end user performance is not compromised. This article will dive into some of the bottlenecks experienced with the cloud and what actions can be taken to address these issues.
Moving your applications from your datacenter into a much larger datacenter (cloud) hosted by somebody else has many advantages. However, in regards to end user performance and server offload, you are only moving the problem around, not solving it. Sure once you’re in the cloud you can easily fire up a few extra servers, as needed, to handle the extra load. However, you can’t always plan for that extra traffic and how much will these additional servers end up costing?
Regardless of where your applications are hosted, they need to be accessed by your customers or users. As the distance of your users increase from the physical location of the cloud, so do your challenges. A user accessing your site from the other side of the globe may have to go through over a dozen of networks (hops) before it arrives to your website or server. These networks are using BGP to route traffic that is entirely based on economical relationships they have contracted with each other, not for performance! Furthermore, HTTP is a very chatty protocol that is layered on top of TCP, a very reliable yet polite protocol. By polite I mean it waits for a packet to be received before sending the next packet. This is fine if users are close to the datacenter but increase the number of hops and you increase the chance of a delay as TCP will wait until it hits timeout on lost packets before sending another one. During this delay your users experience what I like to call “hot freeze”, your application is running but it appears it has been frozen or not responding because it is waiting on a packet.
As web applications become more and more sophisticated these delays can become catastrophic. Programmers will need to write some very tight code that executes on the server and has minimal I/O traffic with the end user. Besides creating more efficient web applications there are other technologies available to battle the inherent issues of the internet. IP based acceleration products can accelerate from the transport layer (layer 4) to the application layer (layer 7) and come in the form of hardware (appliances) and services. The appliances sit in the datacenter and help performance for local users, but have very little gain for global users. The services are led by CDN giant Akamai and many of its competitors such as NetDNA, fastSoft, Cotendo, Limelight, CDN Networks, and Level 3 Communications who offer similar services. Competition is heating up in the space as the different companies use various technologies to increase web performance between the end user and the cloud.
Regardless of which cloud service you put your application on, if performance is important you will need to budget for such acceleration services. So if your cloud is too fluffy and missing a little thunder, take a look at the services these vendors offer so you can have your cake and eat it too!