Saturday, April 28, 2012

Cloud computing 101

New technology often comes with new terminologies and often confusing so I did a quick research to understand the bigger picture of what cloud computing really offer us. Cloud computing itself is more than just accessing a blackbox somewhere in the Internet.

When you watch Microsoft advertisement "...to the cloud", this is form of IT delivery of computing requirements as a service to a heterogeneous community of end-recipients. In layman terms, one should start thinking cloud as a billable utility service delivery just like the power company provide electricity to their homes. Cloud providers offer these type of services based on 3 fundamental models.

  1. Infrastructure as a Service (IaaS) - The IaaS model is the most basic cloud service model. Cloud providers offer computing resources – as physical or more often as virtual machines, raw (block) storage, firewalls, load balancers, and networks. IaaS providers supply these resources on demand from their large pools installed in data centers. Local area networks including IP addresses are part of the offer. For the wide area connectivity, the Internet can be used or - in carrier clouds - dedicated virtual private networks can be configured. To deploy their applications, cloud users then install operating system images on the machines as well as their application software. In this model, it is the cloud user who is responsible for patching and maintaining the operating systems and application software. Cloud providers typically bill IaaS services on a utility computing basis, that is, cost will reflect the amount of resources allocated and consumed.
  2. Platform as a Service (PaaS) - In the PaaS model, cloud providers deliver a computing platform and/or solution stack typically including operating system, programming language execution environment, database, and web server. Application developers can develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers. With some PaaS offers, the underlying compute and storage resources scale automatically to match application demand such that the cloud user does not have to allocate resources manually. This is good choice for companies that have lots of tech resources and need to manage the applications.
  3. Software as a Service (SaaS) - In this SaaS mode, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients. The cloud users do not manage the cloud infrastructure and platform on which the application is running as these application are not install on user's own computer, thus reduce maintenance and support. Cloud application differs from other applications is its elasticity. This can be achieved by cloning tasks onto multiple virtual machines at run-time to meet the changing work demand. Load balancers distribute the work over the set of virtual machines. This process is transparent to the cloud user who sees only a single access point. To accommodate a large number of cloud users, cloud applications can be multitenant, that is, any machine serves more than one cloud user organization. It is common to refer to special types of cloud based application software with a similar naming convention: desktop as a service, business process as a service, Test Environment as a Service, communication as a service. The pricing model for SaaS applications is typically a monthly or yearly flat fee per user.
As a subscriber/customer to cloud service, cloud clients usually falls in one of the following deployment models.
  1. Public cloud - Public cloud applications, storage, and other resources are made available to the general public by a service provider. These services are free or offered on a pay-per-use model. Generally, public cloud service providers like Microsoft and Google own and operate the infrastructure and offer access only via Internet but user has to get their own direct internet/broadband connectivity separately.
  2. Community cloud - Community cloud shares infrastructure between several organizations from a specific community with common concerns (security, compliance, jurisdiction, etc.), whether managed internally or by a third-party and hosted internally or externally. The costs are spread over fewer users than a public cloud (but more than a private cloud), so only some of the cost savings potential of cloud computing are realized.
  3. Private cloud - Private cloud is cloud infrastructure operated solely for a single organization and could be managed internally or by a third-party. It is generally either hosted internally (private internal network) or externally (Internet) to only select users and not available to general public. They have attracted criticism because users "still have to buy, build, and manage them" and thus do not benefit from less hands-on management, essentially lacking the economic model that makes cloud computing such an intriguing concept.
  4. Hybrid cloud - Hybrid cloud is a composition of two or more clouds (private, community or public) that remain unique entities but are bound together, offering the benefits of multiple deployment models. By utilizing "hybrid cloud" architecture, companies and individuals are able to obtain degrees of fault tolerance combined with locally immediate usability without dependency on internet connectivity. Hybrid Cloud architecture requires both on-premises resources and off-site (remote) server based cloud infrastructure. Hybrid clouds lack the flexibility, security and certainty of in-house applications. Hybrid cloud provides the flexibility of in house applications with the fault tolerance and scalability of cloud based services.
There are few key terminology that one need to understand when approaching Cloud providers.
  1. Pay Per Use - A cost model for cloud services that includes both subscription-based and consumption-based models. This is in contrast to traditional IT models, which require capital expenditures along with hardware and software maintenance.
  2. Middleware – Middleware refers to software that sits between applications and operating systems, and enables them to talk to one another. An example would be a program that would allow your SAP system to talk to your Internet fax provider.
  3. Elasticity – This allows cloud customers to experience rapid scaling of applications and usage without the need to build out infrastructure or deploy internal resources. Peak periods can be met, while needs for lesser capacity are met without unnecessary overhead, eliminating the need for capacity planning and simplifying budgeting.
  4. Availability – One advantage of using a cloud provider is knowing that the scale they bring to the table ensures that the services you require are available when and where you need them. With network and process assets served across multiple environments and locations, you greatly increase resource and application availability.
  5. SLA – An important item to consider when working with outside cloud vendors are Service Level Agreements, or SLA’s. These agreements are key to knowing that the level of service you are expecting is agreed upon in writing by your service provider. One should always question and access the acceptable risks since the cloud provider's SLAs are also a method for them to offload their liability to their customers.

1 comment:

Kok Hon Yin said...

Interesting to note that Microsoft System Center 2012 design point is that everything is built for the private cloud, hence it may be indication that Microsoft future also potentially hedging on private clouds success...

http://searchwindowsserver.techtarget.com/tip/How-System-Center-2012-enables-Hyper-V-private-clouds