As you may know, “Cloud” has become one of the most confusing terminology in the recent times. If you ask a team of 5 people you might end up getting 7 definitions of what they think is “Cloud”.

For a beginner “Cloud” can be considered as “Anything” as a service offered through internet. This could range from storing/playing your songs/media (ex:iTunes), to accessing emails (ex: gmail), to accessing applications (ex:Google Docs, SalesForce) to building new applications (Ex:Force.com)

While there is a plethora of “as a service” out there in the cloud, to being with let’s first look at some of the important ones.

Mapping Traditional Stack to Cloud Model

A (traditional) typical solution stack contains Hardware, Framework and Application. Let’s look at each of these from the perspective of an Organization building the application.

Stack Description Things Organization need (to worry)
Hardware Refers to the physical hardware where the software will be running.
  • Physical Servers– Powerful Machines to execute the software
  • System Administrators– To help in managing the servers, upgrades, AV, etc.
  • Network Architects– To design the network architecture for systems
  • Security– Define and implement security measures
  • Hosting– Hosting environment, Bandwidth, etc.
  • Scalability – Need provisions to upgrade/add hardware for future requirements.
Framework Refers to the basic plumbing layers that are common across the application. Ex: Logging, Exception Management, Security,  etc.
  • Software Architects– To design a solid framework that can be used as a base for the application
  • Architecture– Tested and proven architecture
  • Efficient Framework– Solution that can ease Developer’s coding efforts.
  • Integration – Capability to interact with other external systems
Application Actual application addressing the business solution that the application is intended to solve
  • Developers – Resources to code the application functionality
  • Development Rapid Development of Functionality
  • Flexibility – Application should be able to take up changes in functionality with ease (both in terms of effort and cost).

Let’s see how the Cloud Model transforms these stacks,

Hardware <==> IaaS (Infrastructure as a Service)

IaaS Vendors address all the hardware needs that we saw in the earlier table. Apart from providing the machines, IaaS vendors take care of managing them (maintenance, upgrades, etc.) along with a set of hosting options.

Some of the key highlights of IaaS,

  • Hardware available in all sizes – Micro, Small, Medium, Large, Extra Large. You can pick and choose the one that meets your requirement. You can also change the size at any point in time.
  • Pay as you use – you pay on a monthly basis depending on the services consumed.
  • Wide variety of hosting and bandwidth availability – Again you pay only for what you are consuming.
  • Elasticity (scale-up/scale-down) – Ability to increase/decrease your infrastructure requirements on the fly.
  • Storage services – many of the IaaS vendors also provide huge storage capacity. Example: Amazon offers S3 (Storage Services) that can be used to store huge amounts of data.
  • Computing Power – There are certain applications that may require huge processing power only for certain periods of time. IaaS provides an excellent way to utilize computing power at your own will.
  • Load Balancing/Fail Over Environment – IaaS facilitates load balancing and fail over environment so that your applications can be made available 100% of the time. Ex: Amazon offers a service called Cloud Watch, which can monitor your infrastructure/application and based on certain threshold limits can trigger an entire new setup and redirect the requests to be served from the new infrastructure. All of this happens at real-time without any need for human intervention.

Challenges in IaaS:

  • Security – Security of the application and data is one of the top most concerns in adopting IaaS. This concern is particularly raised by IT departments of the consumer organization, who have been enjoying complete control of the infrastructure/environment. Hence, it’s quite natural for the IT folks to be tentative about having their data outside their control and still be able to meet the security requirements.
  • Compliance – Organizations have various sets of compliance to adhere to – IRDA/SEBI/RBI/PCI-DSS/ISO 27001/SAS-70/IT Act. However, IaaS space is yet to mature to have equivalent compliance levels. Therefore, the consuming organization should implement the necessary processes to ensure compliance levels.
  • SLA/Availability – This is one of the biggest challenges in moving to IaaS. This is one of the key parameters that you may want to use for evaluating IaaS vendors. Five 9s – 99.999% (uptime) is the most desired availability. However, one has to understand the business criticality of the application vs. the cost factor while determining the required Availability. Let’s take a small example to understand this better. Let’s take a fixed period of 1 year, which is 30 (average) days * 12 months * 24 hours *60 minutes = 518,400 minutes. The following table will throw light in terms of the down time you should expect for various Availability %s.
Availability Down Time (in minutes) Down Time (in hours)

99.999%

5.2

0.09

99.99%

52

0.86

99.9%

518

8.64

99%

5184

86.4

As you can see, with 99% you can expect your application to be down for 86 hours in a given period of 1 year. While many of the IaaS vendors provide you higher than 99%, it’s a balance you want to strike in terms of the cost vs. your business need.

Below are the links for the complete set of SLA’s from some of the major IaaS vendors,

Amazon

 

Go Grid

  • Early Days – Cloud by itself is still in its early days. The services offered in this space will get matured in the coming days. Until that time the consumer should play it safe.
  • Dependency – Other than pure computing power IaaS vendors offer a lot of services. Ex: Amazon offers Database services like SimpleDB, RDS, ElastiCache and messaging related services like SQS, SNS and SES. You should be aware that consuming these services creates a dependency with the IaaS vendor, which means portability (across other IaaS vendors) becomes challenging.

Below is an interesting real world case study of how Global Gossip (a leading Wi-Fi service provider in US) went about choosing their IaaS vendor. You might want to pay attention to the parameters they considered for evaluation.

Few other interesting URLs,

http://www.gartner.com/it/page.jsp?id=1622514

PaaS is a bigger topic and a little complex one too. Unlike the IaaS, PaaS has quite a bit of variations in the way how it works/offered to consumers. I will detail this out in my next blog.Webinar