Monday, April 5, 2010

Infrastructure as a Service - IaaS: Cloud Computing

Until the year 2009 Cloud Computing was a hype. But now it has definitely lived up to the hype and moved beyond it. Gartner’s Strategic Planning Hypothesis predicts that, by 2012, about 80% of Fortune 1,000 companies will use Cloud Computing Service in some fashion.

Let us discuss what constitutes cloud computing. Cloud Computing can be broadly classified into three *aaS, i.e., three layers of Cloud Stack, also known as Cloud Service Models or SPI Service Model:

  • Infrastructure-as-a-Service (IaaS)
  • Platform-as-a-Service (PaaS)
  • Software-as-a-Service (SaaS)

We can simplify this structure to represent it in a Stacked Venn diagram as follows:

Cloud SaaS PaaS IaaS

In general terms, Internet and Cloud can mean the same thing. They are shown here as two layers because the Internet is quite broader than the cloud.

Infrastructure-as-a-Service (IaaS)

This is the base layer of the cloud stack. It serves as a foundation for the other two layers, for their execution. The keyword behind this stack is Virtualization. Amazon EC2 is a good example of an IaaS. In Amazon EC2 (Elastic Compute Cloud) your application will be executed on a virtual computer ( also known as an instance). You have your choice of virtual computer, meaning that you can select a configuration of CPU, memory and storage that is optimal for your application. The IaaS provider supplies the whole cloud infrastructure viz. servers, routers, hardware based load-balancing, firewalls, storage and other network equipment. The customer buys these resources as a service on an as needed basis.

A few of you may claim that this sounds somewhat similar to what the customers were doing even 10 years back with traditional hosting. So what you can do now with an IaaS that you could not before? How is it different from traditional hosting services?

Why should companies opt for IaaS ?

  • The billing is on hourly or monthly basis. You pay only for the resources your actually consume. This is unlike the traditional services where you pay a fixed amount even if you don’t use the resources, or don’t have enough clients to consume the preconfigured resources. In cloud computing, i.e., IaaS, you pay less if you have a lower customer base and vice-versa. Sounds quite rational!
  • Cloud is elastic in nature, i.e., you can control the number of resources you use at any given point in time. Compare this with traditional hosting, where you rent a fixed number of resources for fixed amount of time. Using IaaS you can easily configure your resources for unexpected spikes in traffic. Based on your computing requirements and configuration, your IaaS provider can respond quickly to scale up or down. Amazon EC2 calls it Auto Scaling. This is suitable for applications that undergo quite unpredictable spikes in traffic on an hourly, daily or weekly basis; they will now have the resources they need On-Demand!
  • One more feature I liked about Amazon EC2, which is perhaps provided by other IaaS providers as well, is Elastic Load Balancing. This feature auto-distributes an application’s incoming traffic across multiple Amazon EC2 instances (virtual computers).
  • The Amazon EC2 SLA (Service Level Agreement) guarantees 99.95% availability of the service within a region over a trailing 365 day period. GoGrid has the most generous SLA with a guarantee of 100% Uptime and 24/7 Support.
  • How quickly can you scale up or scale down your capacity? An Amazon EC2 customer can increase or decrease capacity within minutes. You can commission one, hundreds or even thousands of server instances simultaneously. This is true for other IaaS providers as well. One Rackspace client told me that he can spin up new servers in seconds!

Details of the remaining two layers of Cloud Stack i.e. PaaS (Platform-as-a-Service) & SaaS (Software-as-a-Service) will be covered in another post. Keep following…

Related Cloud Computing Articles at Techno-Pulse

1 comment:

  1. Your blog is entirely different. You share cool tech tips.