Introduction to the Cloud
To help us define the “cloud,” we turn to the National Institute for Standards and Technology (NIST). You can find NIST’s very beneficial site at https://www.nist.gov. According to NIST, cloud computing is “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
This statement certainly says a lot, and we really need to break it down. Fortunately, NIST helps us with this as well. Here are the five essential cloud characteristics that truly define the technology:
On-demand self-service: This characteristic means that a customer of cloud technologies can provision and manage resources without the intervention of cloud-hosting administrative personnel. For example, you might deem that you need a new web server to advertise a particular product or service. You can completely provision, configure, and deploy this web server without contacting anyone responsible for hosting the cloud solution. It can be as easy as filling out a few fields and clicking a few buttons in an easy-to-use graphical user interface (GUI).
Broad network access: Your cloud resources should be available over the network and accessed through standard mechanisms. These standard access approaches (such as HTTPS) promote the use of cloud by thin or thick client platforms (for example, mobile phones, tablets, laptops, and workstations).
Resource pooling: The provider’s compute and other resources are pooled to serve multiple clients using a multitenant model. This model allows multiple customers to securely use the same physical hardware of the provider. At any time, the cloud provider can use different physical and virtual resources that are dynamically assigned and reassigned according to consumer demand. You should note that this approach provides a sense of location independence in that the customer generally has no control over or knowledge about the exact location of the provided resources. The customer is typically able to specify location at a higher level of abstraction (such as country, state, or geographical zone) when required. Examples of resources that are typically pooled include storage, processing, memory, and network bandwidth.
Rapid elasticity: Resources can be elastically provisioned and released—in some cases automatically—to scale rapidly outward and inward in accordance with demand from customers. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
Measured service: Cloud systems automatically control and optimize resource use by leveraging a metering capability. This is done by the provider at some level of abstraction appropriate to the type of service. For example, the metering might be based on storage, processing, bandwidth, or active user accounts. Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service. This is where the cloud services your IT department pays for are often compared to a utility bill. As with the electric bill, you can be billed monthly, for just the services you used.
Another excellent way to make sense of the many cloud technologies today is to break them down by the “as a service” category they fall under. The concept of “as a service” means that customers “subscribe” to IT resources as needed. The “as a service” technologies we see today include the following:
Software as a Service (SaaS): This is currently the most popular cloud service model. Here the customers access a provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser, or a program’s interface. Note that in this model, the customer does not manage or control the underlying cloud infrastructure, apart from limited user-specific application configuration settings. This is often revolutionary for IT departments as it means they can provide high-performance and high-value applications to their employees without having to maintain or worry about the underlying infrastructure that allows the applications to run. Gmail is a prime example of a SaaS application in use today.