Thursday, November 5, 2009

Cloudy Architectures

At this time, everyone has heard about cloud computing. In here, I pretend to offer my humble vision about them.

Cloud computing can be included in a new vision for software services delivered via networks called Internet of Services (IoS). In summary, IoS aims at providing a new set of ground-breaking services at Internet scale to the end users (both citizens and enterprises). In Europe, the IoS vision is embedded joint with the vision of the Internet of Things (IoT) in the actions of the so-called Future Internet Assembly (FIA).

So, cloud computing can be seen as the spine for building the IoS. I define a cloud computing platform as "a hybrid hardware/software elastic multi-tenant infrastructure that supports the implementation and deployment of applications and services at Internet scale". I call it infrastructure because it combines both hardware and software architectures. It is elastic because one of the main objectives of cloud computing is to offer/adapt the resources used by an application to its current needs at a given time. Finally, it is multi-tenant because a single cloud infrastructure can run multiple applications from different users, enterprises, departments etc. with heterogeneous requirements.

Another objective of cloud computing is to save money to the enterprises. Using a cloud infrastructure, the enterprises pay for the use of the IT resources. For example, in this way, enterprises do not have to worry about investing a lot of money in IT infrastructures in order to provide good QoS to potential users when dealing with unexpected increasing workloads that may last only short periods. They may simply rent additional resources from the cloud provider in order to satisfy such peaks. Therefore, this can avoid the economical effects of overprovisioning their infrastructures or underestimating the success of certain businesses. Payments can be done by means of the utility computing model, where the user pays for the resources consumed (e.g. like paying our electricity bills), or based on a suscription period (e.g. when we subscribe for a tech magazine for a one year period).

These kind of infrastructures have mainly three different layers of abstraction that encompass different architectures, both hardware and software. These layers include other buzzwords "à la mode" these days: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).
At the top level of the infrastructure is the SaaS layer, that contains the enterprise/user applications running on the cloud. This layer uses the facilities provided by the PaaS layer in order to provide an elastic behaviour to applications with regard to their current needs (basically the current workload and desired QoS attributes, e.g. performance, availability etc.). Finally the IaaS layer provides a virtualized abstraction (software) of the physical resources (hardware) that conform the substrate of the cloud infrastructure.

One of the main concerns of cloud computing is its adaptation to different environments. However, clouds are comming in different flavours: public (accessible for general users, e.g. Facebook), private (devoted to enterprise environments, e.g. Salesforce.com) or hybrid (e.g. cloud applications deployed on Google App Engine, Microsoft Azure or Amazon’s EC2).

In here we are interested in the architectures that can be integrated in the PaaS layer, so we'll write an entry about it in the near future.

Other references about cloud computing are:

A Short Introduction to Cloud Platforms by David Chappel
Berkeley University vision of Cloud Computing
The Future of Cloud Computing article at Sys-Con Media
IBM Cloud Computing

Current providers of cloud computing solutions are:

Amazon Elastic Computing Cloud service (EC2) (IaaS/PaaS)
Google App. Engine (PaaS)
Microsoft's Azure platform (PaaS)
Salesforce.com and Force.com (SaaS/PaaS)
Heroku (PaaS)
SAP Business ByDesign (SaaS)
IBM's Cloud Services and Computing on Demand (SaaS/IaaS)
Rackspace
(IaaS)

Other visions:

IBM vision of the cloud
Oracle in the cloud
The 451 Group vision

No comments:

Post a Comment