What is cloud computing?
It is a concept that is revolutionising the IT industry the same way the Internet revolutionized communications in the 1990's.
Cloud computing is in its essence a model for self-provisioned and on-demand access to centrally hosted compute resources like networks, servers, storage or applications.
Why is it a reality?
The network has become so powerful and so available that in turned ubiquitous. You use it everywhere, all the time, sometimes not even being aware of it.
Whilst a few years ago we had to have as much compute power as possible within our reach or in a local area network, this paradigm has changed because of the overwhelming evolution of the network.
The compute power can now live within the reach of the network, but outside your office. It is in the cloud.
There are different flavors of cloud computing services and it is now widely accepted in the industry that these fall into three categories:
Flavors of cloud
Software as a Service (Saas): Web-delivered software
An application is provided to the user through a web browser or any thin-client interface. The user does not need to know or manage the underlying infrastructure on which the application is running. A typical example is Salesforce.com (Customer Relationship Management software). But another better-known example is web-based email services, such as Gmail.
Platform as a Service (Paas): Application and development environment
Instead of an application, the user has access to a platform that supports programming languages (Ruby, Python, Node.js, Java or others), tools and databases, on which he can deploy its acquired or created applications. In this case the user does not control the network, servers, operating systems or storage, but controls the application. Examples are Microsoft Azure or Heroku.
Infrastructure as a Service (Iaas): Compute and Storage power
The infrastructure is the networks, servers, storage and other fundamental resources. You have the choice of running arbitrary operating systems or applications on top of the infrastructure with complete control of the software. However, you don't need to worry about managing the underlying infrastructure, like RAM, CPU or storage arrays. Amazon Web Services and Lunacloud are two examples of IaaS providers.
PaaS platforms are often built on top of IaaS platforms. The same is true for SaaS platforms, regarding PaaS or IaaS. The cloud is also all about interoperability.
What it takes to be a cloud service
But a cloud service is a lot more. The ultimate difference between self-claimed and true cloud providers in the world are three characteristics:
You can arbitrarily and unilaterally decide when to deploy cloud services without having to have any interaction with a human from your service provider. You get what you want, when you decide to. And you control it.
When you deploy an application you often do not control demand. Rapid elasticity gives you the ability to quickly or automatically scale up or down resources. You get what you need, when you need it. Multiply it by 100x or reduce 2x, according to your demand. It is your provider that will have to adapt to it, not you.
Metering, monitoring and reporting resource usage. A real pay-per-use model is delivered as a utility. You pay for what you need and nothing else. No yearly or monthly fixed fees. Only per hour or per user fees, real usage-based.