In part 1 of our Cloud 101 series, we explained how cloud architectures work as we looked at some of the benefits of cloud computing. Essentially, the cloud enables rapid access to compute, networking and storage resources via an IP network, allowing organizations to improve IT workflows through high levels of self-service, elasticity and metering. Moreover, the on-demand nature of cloud solutions means that users can move past long provisioning times and cumbersome procurement processes.
This follow-up post will delve into specific deployment and service models of cloud computing. Clouds are versatile, capable of delivering virtualized hardware resources, development tools and/or software solutions. They can also be managed by a third-party service provider, the IT department or a combination of the two. Choosing the right way forward depends on the organization's particular operational requirements, as well as its needs in areas such as security and compliance.
Cloud Service Models: IaaS, PaaS and SaaS
The cloud is often referred to a stack, a pyramid-like structure with low-level resources (servers, networks, operating systems and so forth) at the bottom and end user software services at the top, with tools for developers and testers in between. These categories are not hard and fast, and in fact the lines between them have been blurring for some time. Still, there are three broad labels that are typically applied to the tiers of the cloud stack:
Infrastructure as a Service (IaaS)
IaaS refers to virtualized pools of compute, networking and storage. Users are provisioned CPUs, memory and other raw resources, and they set up their own virtual clusters atop which they install, run and maintain their software stacks.
Users have control over how the IaaS setup is integrated with software. Meanwhile, the service provider handles the underlying hardware and networks. Amazon Web Services is currently the most widely used form of IaaS and is addressable through Eucalyptus' deeply compatible AWS APIs.
Organizations may take up IaaS to support dynamic scaling and avoid upfront hardware expenditures. For new companies, the pay-as-you-go business of public IaaS means that they only pay for what they use and can also consume more if and when there is a spike in demand.
Platform as a Service (PaaS)
A wide range of development, testing and deployment services are usually grouped under the PaaS banner. The aim of PaaS is to enable rapid creation and release of Web applications without having to invest the physical infrastructure and software tools that support them.
PaaS cloud provides access to scalable runtime and programming environments with embedded data structures. Failover and load balancing may also be built in. Essentially, users are building applications on a platform managed by the service provider. Leading PaaS solutions include Microsoft Azure and Google App Engine.
Solutions typically include an Web interface, as well as integration with databases and Web services. The rise of agile software development has made PaaS a popular mechanism for enhancing collaboration and accelerating application lifecycles.
Software as a Service (SaaS)
Millions of consumers have used SaaS without even knowing it. SaaS involves access to collections of software that are controlled by the provider and executed on that organization's infrastructure. It is basically the delivery of commercial software over the Internet. Dropbox, Salesforce and Workday are just a few highly popular examples of SaaS.
The provider manages user data, provides storage and backup, applies patches and updates and generally controls the application's direction. Companies may go with SaaS instead of packaged software in order to facilitate easy Web and mobile access, interact with customers, scale with spikes in usage and handle basic business functions such as email and CRM.
Cloud Deployment Models: Private, Public and Hybrid
While service models delineate the specific capabilities of cloud solutions, deployment models describe where, how and by whom the cloud's physical servers are managed. Cloud computing may be deployed as private, public or hybrid, with the choice determined by the user's desired levels of control and performance.
With a private cloud, users have immediate access to IT resources that are running on internal systems and/or in a data center. Compute, networking and storage can be provisioned from a Web interface, just like with public cloud.
All services are deployed behind the company's firewall and are subject to existing mechanisms for physical, electronic and procedural security in the facility. Accordingly, private cloud offers a high degree of control and data security, making it a popular option for enterprises uncomfortable with storing information on someone else's infrastructure.
In addition, private cloud affords many options in hardware and is not predicated on multi-tenancy. This means that users benefit from dedicated performance. In some cases, organizations may also rely on third-party providers to administer entire servers that are reserved for their software. This arrangement is called a managed private cloud.
As the name suggests, public cloud is a deployment model under which resources are made generally available to everyone. However, the cloud provider still owns and manages the actual services. Users can self-provision resources from a Web interface, in effect renting them from the provider on a pay-as-you-go basis.
The chief appeal of public cloud is its on-demand setup and vast scalability. Organizations can quickly get what they need as requirements change, without having to invest in data center infrastructure.
Machine resources and costs are shared across the user base. Commonly cited issues with public cloud include data control (e.g., who is handling it, where are the servers located and are there are any applicable local laws), outages and performance.
A hybrid cloud combines one or more public clouds and/or one or more private clouds. To enable such a setup, the user applies a tool such as Eucalyptus that allows for data and application migration between the multiple environments. Shared APIs are essential to proper hybrid cloud computing.
Hybrid clouds potentially provide the best of both public and private cloud. For example, in an AWS hybrid cloud, users can take advantage of the scalability of AWS as needed through cloud bursting, while still being able to run workloads in the privacy of their own data centers when appropriate.
That covers the major service and deployment models in cloud computing In our third entry in the Cloud 101 series, we will wrap up by looking at the relationship between virtualization and cloud computing.