Cloud 101: How the Cloud Works

by paul on February 22, 2010

in Cloud, cloud computing, technology

What is the first image that pops up in your mind when you hear the term “Cloud Computing?” Do you envision a large super computer with a complex assortment of buttons and switches and blinking lights? (Oh my!) Or perhaps the cloud is really just the WOPR and the Joshua System with security so strong, only a 16-year old can break it! Being a geek/technologist, I find all the tech that enables cloud computing to be pretty fascinating. Here is my unofficial, high-level under the covers view of what powers a cloud. Enjoy.

The Hardware

In any cloud offering, there are three main elements of hardware: servers (sadly not the WOPR), network, and storage. Some of these elements may contain multiple device types as you’ll see later in the post. Let’s jump into the hardware.

Servers
The servers that power the cloud are pretty similar to those found in the enterprise: high speed, multi-core processors combined with massive amounts of memory – think upwards of 1 terabyte of RAM – yeah that’s a lot. Servers come in two form factors: blade and rack mount. In my opinion, blade servers are ideal for cloud environments because you can really pack them into a standard 42U cabinet.

Network
The next and equally important element is the network. All of those servers need to talk to something right? The switches that provide the connectivity are running either 1Gb or 10Gb Ethernet. New data center switches are more advanced and are capable of switching more than just Ethernet; some are also capable of switching fiber channel.

Switches aren’t the only network devices that need mentioning. The environment needs protection from intruders and malicious attacks. This is typically the job for firewalls and intrusion detection/protection systems. These systems sit on the perimeter and analyze packets to ensure traffic can get from point A to point B securely.

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

Storage
The third hardware element in the cloud is storage. Some cloud services have a massive lineup of storage arrays that offer a variety of services in multiple tiers. These services range from replication, online backup, data de-depulication, and just plain ole file storage. The tiers of storage may offer an SLA to guarantee a certain level of performance and availability.

The Software

So there’s all this hardware, now what? Well now there needs to be software that allows things to happen: basically the as-a-Service portion of the Something-as-a-Service offering.

I’ll break the software stack down similar to the way I did for the hardware. The main elements of the software portion are the portal, element managers, and the orchestration system. The image below is a logical representation of the software stack.


Control Panel/Portal
Most cloud services typically provide a control panel or a portal to manage accounts and services. Users log in and are presented with various options ranging from user account management, service management, reports, resource usage, remote consoles and controls. Providers may also provide a set of APIs to allow for developers to build applications that can talk to their cloud services directly. Developers can use these APIs to “burst” when their applications require additional resources.

Element Managers
The element managers are various components which provide the management interface to a device or a function. Every piece of hardware that is configurable has some sort of element manager. There are managers for the servers, for the operating systems running on top of the servers, the network, and storage. Tasks such as rebooting a server, creating a VLAN, enabling a firewall rule, and initiating a backup/restore job are all performed by an element manager.

Orchestration Systems
I left the orchestration systems for last because this is where a lot of the magic happens. The orchestration systems are the conductors of cloud services. These systems interact with the element managers with input received from the portal. As a request for a resource or operation is made, the orchestration systems will call upon the appropriate element manager or managers to satisfy the request.

The orchestration systems also manage calls made to the cloud’s API. As a developer, you can create cloud-aware applications which use the service provider’s APIs to automatically adjust the amount of resources required to run efficiently. The application can scale up or scale out and then scale back down, all based on the demand.

For example: As a web developer you can design your application to identify when demands change and communicate with the orchestration system via the cloud’s API.

Another example of the orchestration system in action: Your cloud instance becomes unresponsive and you need to initiate a hard reset via the control panel or portal. Once the request is submitted, the orchestration system directs the request to the appropriate element manager and then returns the response back to the portal.

This post really got me thinking about how far we have come with technology. Fifteen years ago, I was downloading GIFs and playing door games on my favorite BBS, using telnet to “browse” some UNIX servers at Rutgers, and exploring what this new AOL 1.0 diskette had to offer. Today, I can send email, browse the web, play games, and manage my cloud servers all from my iPhone. It’s amazing how far we have come with technology and I can’t wait to see how far we can go.

  • Well for me, when it comes to server system, rack must be used which can make the whole system to be more organize.
  • I think you have illustrated the cloud management stack. A cloud has the execution stack as well as management stack. The management could potentially become a orchestration problem (the point of your illustration), but the execution is definitely a scheduling (grid) problem.
blog comments powered by Disqus

Previous post: Real World Lessons: Wegmans and Customer Service

Next post: Google Webmaster Tools