Over the last couple of years the term cloud computing has become become public relations shorthand for «Look, look, we’re also cool.» The expression is now so overused and is applied so widely that it has become almost meaningless. That’s a problem. Senior business decision makers have been set a drift in a sea of PR and marketing confusion just at a time when they need to be making strategic technology choices that may directly impact the future of their firms. I offer this brief guide to cloud computing in an effort to help cut through the fog currently enveloping this important topic.
Let’s start with a formal definition of cloud:
The provision of computing infrastructure, platform or application service as a utility, which can be consumed by any Internet connected device, using open standard protocols where variability in demand is satisfied through the dynamic and automatic provisioning of pooled hardware, network, and software service resources providing the illusion of infinite scalability and are generally billed for on a pay-as-you-go basis.
Now we can deconstruct this definition to hopefully separate reality from hype.
The provision of computing infrastructure, platform or application service as a utility — Cloud computing is composed of three complimentary layers of service.
- Infrastructure as a Service (IaaS) is where all the basic computing resources — computation (CPU), program memory, disk storage and network connections — are managed and allocated to higher level software services and applications as needed.
- Platform as a Service (PaaS) — is a set of higher level software services that are used by software developers to build cloud based applications. PaaS might include services such as security and authentication, data access and transaction logging.
- Software as a Service (SaaS) is the highest level of cloud service consisting of the applications directly consumed by end users generally through a web browser and without the need to install software locally on the users PC.
There is a helpful shorthand for each of these layers of cloud computing service: IaaS is a computing resource management model, PaaS is a software development model and SaaS is an application delivery model.
The description of these services layers as a Utility means that they are consistently available at any time and accessible from anywhere.
Which can be consumed by any internet connected device, using open standard protocols — In general cloud based applications and services can be accessed by any device that can connect to the internet using standard internet protocols. Generally a web browser would be used by an end-user to access services. However, native applications on smart phones may also be the interface through which users connect.
Where variability in demand is satisfied through the dynamic and automatic provisioning of pooled hardware, network, and software service resource — This is one of the key differentiators of cloud computing which separates marketing spin from reality. For a service to truly be considered as cloud computing it must be able to automatically scale up and down to meet variations in demand. Hosting a website on an internet server — or even a group of servers — does not qualify as cloud computing because if demand exceeds the capacity of the underlying hardware then human intervention is required to either add additional servers or to move the workload to a larger capacity machine. Cloud services make these adjustments automatically.
Providing the illusion of infinite scalability — Users of true cloud computing services never experience a lack of resource due to an excess of demand. Cloud provider organizations constantly build out their infrastructures so that available capacity always exceeds near-term user demand. It is the 'Illusion' of infinite capacity that separates cloud architecture from more traditional forms of hosted computing infrastructure.
Generally billed for on a pay-as-you-go basis — Though not universally the case, the charge for cloud computing services is normally based on the amount of computing resource consumed over time. This is the model general used for IaaS services. This compares the fixed or contract pricing models used for more traditional hosted application services.
True cloud services should meet all the the criteria outlined above but in particular they should be able to provision new services and scale automatically based on fluctuating consumer demand without human intervention. Services being sold as «Cloud» which come with fixed capacity limits or obligations to purchase defined hardware configurations are — by definition — nothing of the sort.
There is one other aspect to cloud computing that creates significant confusion: How it is deployed? There are three accepted models of cloud deployment: Public, Private and Hybrid.
Public Cloud is where an application is deployed on a cloud infrastructure that is shared by multiple customers and is directly accessible over the internet. The most commonly used public cloud service is Amazon’s Web Services. Other public cloud environments include Microsoft’s Azure and Google’s App Engine. Unfortunately the Public deployment model is often made synonymous with the term cloud computing. It is not.
Private Cloud is a cloud infrastructure that is dedicated to one particular customer. The environment may be run behind a firewall in the customer’s own data center or it may be run for the customer by a third party. In either case the private cloud resources are dedicated to the needs of one company or organization. Due to privacy and security concerns, government’s are likely to create private cloud infrastructures that are shared by multiple agencies or ministries.
Hybrid Cloud is a deployment choice where public and private cloud infrastructures are linked together. A company may choose to run certain sensitive workloads on its dedicated private cloud infrastructure while running less sensitive workloads on a public cloud infrastructure. The two environments are joined together to give application users a seamless experience. A company may also temporarily utilize public cloud infrastructure capacity to help manage peak demand that exceeds the capacity of the company’s private cloud infrastructure.
We now have a complete definition of cloud computing: Cloud Computing is a specific form of systems architecture — meeting the criteria outlined above — plus a particular approach to resource management and application development and delivery. This cloud architecture can then be deployed either publicly on a shared infrastructure, privately on a dedicated infrastructure or in a hybrid of public and private.
Diffusing the Cloud: Cloud Computing and Implications for Public Policy takes a deeper dive into the world of cloud computing examines it’s evolution and some of the economic and policy issues surrounding this important new domain.