Search
Lori MacVittie - Two Different Socks
You are here: DevCentral > Weblogs

Monday, March 15, 2010 #


In this case “baby” is load balancing and the corner is cloud computing.

SocialCloudNow recently wrote up a pretty darn accurate (which is hard to find these days) description of “cloud computing” by walking through the components required. The author did an excellent job – especially where he dove into the relationship between orchestration and cloud computing. Loved that a lot – most folks ignore that piece of cloud computing even though it’s very, very important. But I was a bit put off (okay, a lot put off) at one statement:

blockquote

An honorable mention goes out to the Load balancer – which does the obvious.

blueguerillaHonorable mention? It’s an afterthought that certainly one of the key enabling technologies of cloud computing does not deserve. Shortly after reading the post and debating this point with Paul Richards (the author) I came to the realization that he was looking at cloud computing from the view point of the consumer, i.e. the organization, the customer, an administrator/developer looking for a cloud in which to deploy applications. That made his statement make a lot more sense. If you’re looking at cloud services offered and trying to decide which one to jump on then perhaps a load balancer isn’t your primary concern at all (although that makes me want to say, “Inconceivable!”). But from the perspective of the definition of cloud computing and the folks who are implementing (internal/external, public/private) such environments, a load balancer is certainly a lot more than just window dressing.

So I will say that as far as cloud services go, load balancing may be – based solely on consumer need, or perception of need – worthy of only honorable mention. But as far as implementing a cloud computing environment goes, it’s a requirement.


LOAD BALANCING is in the CLOUD DNA: FROM CPU to NETWORK to APPLICATION to DATA CENTER

Let’s just get right down to brass tacks: in today’s cloud computing environments, without load balancing there is no scale. None. You can’t scale applications in the current technological environment without load balancing. Whether that load balancing comes from hardware, software, virtual ware, or a Cracker Jack box is irrelevant. What’s important is that the ability to load balance applications – to virtualize applications and services – is an absolutely essential component of cloud computing.

Until we figure out how to vertically scale resources on-demand and past the physical limitations of the hardware* (i.e. we can “reach out” to other pools of pure compute resources and expand the logical memory and CPU of the primary hardware) we are going to be wholly reliant on load balancing to implement on-demand scalability in any environment, cloud computing or traditional. Thinking about that a bit more it even in the case we break the physical barrier we need some form of load balancing. If pools of compute resources and RAM are going to be used across physical devices there needs to be a way to manage those resources as though it were…a single, aggregated set of resources.

Which is what a load balancer does.

It would certainly be a completely new form of load balancer, but it would still likely be a load balancing capable “something” nonetheless. Load balancing is a lot like CPU-scheduling, after all, and that’s been around for, well, as long as there have been CPUs. So extending the concept out into the network, using high-speed interconnects as the bus between CPUs and blocks of memory isn’t all that far-fetched. But I digress – the point here is that even scaling ‘up’ will almost certainly require load balancing of some kind. It’s just that core to scalability; it’s native at the CPU level, at the machine level, at the network level, at the application level, even at the data center level (GSLB, a.k.a. global application delivery, a.k.a. intercloud). Scale without load balancing is simply inconceivable, and one of the core identifying characteristics of cloud computing is, yes, scale.

If you remove a firewall from a cloud computing architecture does it impact the core behavior of a cloud computing environment? Nope. Not at all. It leaves it very insecure and I certainly wouldn’t build a cloud computing environment without one, but from a purely technical point of view it isn’t adding to the core behavior expected of cloud computing. Now take out the load balancer. What happens? Scalability is lost. You end up with a bunch of cloned application instances, each with their very own IP address, with no way to distribute requests to them. Removing a load balancer from a cloud computing environment breaks the cloud, ergo a load balancer is a requirement.

Note it doesn’t matter whether the load balancing is provided by software or hardware or virtualware. It is the concept of load balancing that is integral to cloud computing and elastic scalability. Taking “load balancing” out of the equation changes the behavior of the cloud computing environment such that it isn’t very elastic any more.

If we were going to write a “cloud computing RFC” the term “load balancer” would be preceded by a MUST INCLUDE and firewall would be preceded by a SHOULD INCLUDE. If we were going to write a “cloud computing RFP”, such as would be written by a customer looking to compare offerings, then these two might be juxtaposed.

*There are a couple offerings out there that actually do this – it’s some awesome stuff – but they aren’t being leveraged by most cloud providers today.


Related blogs & articles:

Follow me on Twitter    View Lori's profile on SlideShare  friendfeed icon_facebook

AddThis Feed Button Bookmark and Share

Blog Stats

Posts:980
Comments:1685
Stories:0
Trackbacks:583
  

Image Galleries

  

Application Delivery

  

Cloud Computing

  

Random

  

Security

  

Chat Catcher

82,243 Members in 102 Countries and Growing!

Join DevCentral Today!

About DevCentral

DevCentral has been a successful, thriving community for many years. We have always strived to bring you the best technical documentation, discussion forums, blogs, media and much more that we can.

So dive in, get familiar with DevCentral. We hope you like it, we hope it makes your job easier, and lets you get that much more power out of the community. To learn more, make sure to check out the Getting Started section. And if you have any problems, or think something could be easier to use, drop us a line to let us know.

Got It !

We've received your comment and transmitted it directly to DevCentral HQ.

Thanks for taking time to let us know what's on your mind. At DevCentral | Community Matters!

Get In Touch With Us

Have questions, suggestions or just want to get something off your chest?

Use our handy form below to Direct Connect with DevCentral Mission Control.

Send Us Feedback       or