The American National institute of Standards and Technology (NIST) provides clear definitions of the service models and deployment models for cloud infrastructures. These definitions are the de facto standard for discussing cloud platforms.
The “service model” for a cloud answers the question: What resources are provided by the cloud? NIST and others define three general service models:
- Software as a Service (SaaS): Provides a complete application to a customer hosted on a cloud platform to provide lower latencies, better bandwidth, scaling, or other features. Typically the customer will access the service through a web browser or another client on the customers computer.
- Platform as a Service (PaaS): Provides a programming environment and cloud infrastructure featuring high-level capabilities like load-balancing, scaling, etc., relieving the programmer from having to construct those services from scratch in the application. Typically the customer is an application developer who accesses the service through a proprietary, language-specific API.
- Infrastructure as a Service (IaaS): Provides access to raw computing resources (virtual machines, storage, etc.) that can be provisioned (and released) rapidly. Customers access these services either through a simple (usually REST) API or through a web interface.
These service models are often presented as a hierarchy, as a PaaS is often built over a IaaS, as well as a SaaS over a PaaS.
Despite these clear-cut definitions, real services tend to be more complicated, offering elements of the different service models from the same cloud infrastructure.
The “deployment model” for a cloud answers the question: Who will be using the cloud infrastructure? NIST provides three cloud deployment models:
- Private: These are infrastructures in which the computing resources are co-located with the primary users of the infrastructure. The users typically pay for the computing resources directly and run them as a cloud for their own purposes.
- Community: These are infrastructures run for a group of collaborating institutes with similar aims. The users usually pay for some fraction of the resources in the cloud and share those resources with others in the community. Allocation of resources between people is usually done via “horse trading.”
- Public: This is an infrastructure in which the resources are offered to the general public. The customers pay for the resources directly usually via a credit card. The computing resources are housed in data centers controlled by the owner of the cloud, not by the customer.
NIST actually defines a fourth deployment model, Hybrid Cloud, which is really just a mix of the other deployment models. This usually comes up in the context of “cloud bursting”, where remote cloud resources (public clouds) are used when a local cloud resource (private cloud) becomes saturated.
Despite the marketing hype, cloud technologies offer real benefits to users. With cloud infrastructures, people can:
- rapidly deploy large applications without associated large, up-front capital costs
- optimize these applications easily, running them in environments tuned to the application’s requirements
- deploy services near clients to minimize latencies
- scale resources to match customer demand.
If you would like to know more about how to benefit from cloud computing, get in touch with the SixSq team