the product of systematic series of mental activity.

Monday, August 31, 2009

What’s with the cloud anyway?

What’s in the name?

Cloud” is popular metaphor for internet, added with computing it represents highly scalable distributed computing capacity available through World Wide Web.

What’s the buzz?

Availability of affordable high speed network bandwidth allowed access to massive computing resources and services from across the world. Traditional datacenters are costly to setup and even costlier to maintain. Businesses are unwilling to own and manage non core business resources. Data suggests the average enterprise spends $8 in maintenance for every $1 spent on new IT infrastructure. Cloud offers on demand infrastructure and software service with flexible pricing options (pay per use or subscription model). Key is don’t own, use what you want and pay what you use. Gartner predicts by 2011, early technology adaptor businesses will buy 40% of IT infrastructure as a Service.

Companies like Google and Amazon built massively scalable processing and storage infrastructure to support core business operation which they are now harnessing to provide on demand infrastructure and service scalability to other businesses. Interesting bandwidth uses by AWS (Amazon web services) already exceeds their core e-tailing services.

Design basics - Service Layers of cloud computing

  1. Software as a Service (SaaS)

Highest layer offers business functions software running in cloud as service to clients. Software deployed on cloud act as service which can be exploited by user as per need basis, this scenario is very different from traditional “software on desktop” approach. Saas frees user from software licensee purchase and installation and works on pay per use or flat subscription model. Actually everyone of us has used it in one or other way.

Most widely known commercial examples are Salesforce.com and Google apps, Zoho, Microsoft online services.

  1. Platform as a Service (PaaS)

This middle layer offers platform abstraction to clients. Widely known example Xen image from Amazon platform cloud, contains linux distro, web server and development environment such as Ruby or Perl. Other examples are

· Java Google Web Toolkit (Google App Engine)

· Python Django (Google App Engine)

· Ruby on Rails (Heroku)

· .NET (Azure Services Platform)

PaaS is generally constrained by service provider’s capabilities like Google only supported Python for app engine before recent addition of java. Microsoft Azure “.NET”. No cross platform so far.

  1. Infrastructure as a Service (IaaS)

Lowest layer offering standard storage and computing capabilities to client over the network. Hardware resources such as Storage, servers, routers and switches are pooled using virtualization technology to offer on demand hardware scalability. Commercial IaaS is synonym with Amazon due to highly successful EC2 (Elastic compute cloud) and S3 (Simple storage service) services.

Virtualization

Virtualization is most important technology in cloud computing arena, providing abstraction to applications and end users from actual physical resources. Virtualization allows resources (Storage, servers etc) to be treated as resource pool rather discrete systems thus allowing on demand allocation.

Virtualization types

  • OS virtualization
  • Platform Virtualization
  • Network Virtualization

The key benefits offered by virtualization are

  1. Higher resource utilization rate (server, storage)
  2. Resource consolidation
  3. Lower power usage and cost optimization
  4. Space optimization
  5. Disaster recovery and business continuation
  6. Reduced operation costs

Other important technologies include para virtualization i.e. enable single server to be treated as multiple, clustering which allow multiple servers to act as single server. Sophisticated file systems like ZFS which can support virtually unlimited storage.

Cloud options

  1. Public clouds are maintained by commercial vender with massive computing datacenters, running jobs from multiple clients on shared resources (Storage, servers etc). No exclusive client control on underlying infrastructure services.
  2. Private clouds are on demand infrastructure exclusively owned by single client with control over processing capacities and job scheduling.
  3. Hybrid clouds promises best of both worlds where client share some services while use other in exclusivity. Model promises a lot but add complexity of application distribution across the environment. Initial hybrid implementations are capable of handling stateless applications with no complex database and synchronization requirements.

The good

  1. Agility powered by highly scalable infrastructure environment
  2. Anywhere access to application aka location independence
  3. Abstract infrastructure complexities from developer, users and business
  4. Massive on demand scalability
  5. Optimal hardware utilization
  6. Cost advantage (Pay per use or flat subscription model)
  7. Eliminate over provisioning, don’t need it until actually use it
  8. Accelerated application development
  9. Functional offloading – using cloud only for specific resource intensive functions

And not so good

  1. Security and privacy have been biggest concern for the organization as application and data is physical located in shared environment.
  2. Control over environment as service also need to go through multiple maturity cycle to achieve industry accepted model.
  3. Disaster recovery – Though cloud offers best breed disaster recovery through underlying redundant infrastructure and multiple hosted environment but network disaster can pose threat system to availability.

Post a Comment