Definition of Cloud Computing
The U.S. Department of Commerce, National Institute of Standards and Technology (NIST) defines cloud computing in their Special Publication 800-145 as follows:
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 cloud is composed of five essential characteristics, three service models, and four deployment models.
They go on to expand upon their definition, specifically listing the Five Essential Characteristics of cloud computing:
- On-demand self-service – A consumer can provision computing potentialities unilaterally, like network storage and server time, as required automatically without involving an individual interaction with each service provider (supplier).
- Broad network access – Potentialities (capabilities) are accessible all over the network and accessed by criterial procedures that promote use by different thick or thin client platform such as laptops, cell phones, tablets.
- Resource pooling – The computation resources of a provider are pooled to serve up an aggregate of consumers by utilizing a multitenancy pattern, with various virtual as well as physical resources dynamically allotted and re-allotted in accordance with the consumer requirement. There is a feeling of location independence in that the customer, in general, has no command or knowledge over the accurate location of the supplied resources but may be capable of assigning location at a higher level of abstraction like city, state, or country. Examples of resources cover data storage, processing, memory, and overall network bandwidth.
- Rapid elasticity – Potentialities could be elastically provisioned and relinquished, in a few events automatically, to extend quickly outward and inward proportionate with the requirement. To the consumer, the capabilities acquirable for provisioning oftentimes come out to be infinite and can be appropriated in any amount at any time.
- Measured service – Cloud computing systems have the ability to control and optimize available resource utilization by taking advantage of a metering potentiality at a certain point of abstraction suitable to the service type such as storage, bandwidth, processing, and memory. Resource utilization can be supervised, controlled, and reported if the transparent procedures for the provider as well as consumer, who is using a particular service, are provided.
Table 1: Five Essential Characteristics of Cloud Computing
|Resources are instantly available when needed
|Broad Network Access
|Access anytime or anywhere a connection to the Internet exists
|Data center resources are pooled together optimizing quality of service
|The ability to add or remove computing
resources based on need
|The ability to measure resource usage and charge customers
NIST defines the Three Service Models for cloud computing as in Figure 1 and Table 2.
Fig.1: Three Service Models
1. Infrastructure as a Service (IaaS) – The potentiality offered to the consumer is to planning storage, processing, networks, and additional important computation resources where the consumer is able to establish and run a software, which can cover operating systems and applications program. The consumer has no control over fundamental cloud infrastructure but across the operating systems, storage, and deployed applications; and perhaps confined control of certain networking elements like firewalls.
Examples of IaaS
- Amazon Web Services (AWS)
- HP Cloud Services
- Microsoft Windows Azure
- Rackspace Cloud
- IBM SmartCloud
2.Platform as a Service (PaaS) – The potentiality supplied to the consumer is to employ consumer-based or acquired applications program (produced using certain computer languages and services) onto the cloud base maintained by the provider. The consumer has no control across fundamental cloud infrastructure as well as operating system, storage, server, but possesses certain control over the employed applications program and perhaps settings for the application-hosting environment.
Examples of PaaS
- Amazon Web Services (AWS)
- Microsoft Windows Azure
- Google App
- IBM SmartCloud Application services
3.Software as a Service (SaaS) – The potentiality offered to the consumer is to utilize the provider’s applications program operating on a cloud infrastructure. The applications are approachable from different client devices by either a thin client interface, like a web browser or a program interface. The consumer has no control over fundamental cloud infrastructure as well as operating systems, servers, network, storage or even application capabilities, with the exclusion of confined user-specific application configuration settings.
Examples of SaaS
- Salesforce CRM
- Intuit QuickBooks
- Constant Contact
- Google Docs
Table 2: Common Cloud Computing Service Models
|Data center resources: computer, network, and storage resources
|Platform resources: databases, web services, and other middleware applications
|Software resources: customer applications
What will this cloud look like? Will it be available to just my organization or will there be others using the cloud? Where will my data be stored, locally on my computer hardware or in the cloud?
To address these concerns, NIST developed Four Deployment Models for cloud computing as in Figure 2 and Table 3.
Fig.2: Four Deployment Models
1.Private Cloud – The cloud infrastructure is planned for selective use by an individual organization which contains multiple customers. It may be possessed, handled, and functioned by the organization or a third party and it may hold on or off premises.
Private cloud examples include:
- Healthcare companies
- Mayo Clinic
- Baylor Health Care
- Kaiser Permanente
- Blue Cross Blue Shield
- Exxon Mobil
- General Electric
- Dow Chemical
- Investments Firms
- Goldman Sachs
- Morgan Stanley Smith Barney
- Northrop Grumman
2.Community Cloud – The cloud infrastructure is planned for selective use by a particular community of consumers from organizations that have mutual interests like security needs, policy, and compliance considerations. It may be possessed, handled, and controlled by one or several organizations within the particular community, a third party, and it may hold on or off premises.
Community cloud examples include:
- Government Agencies: State and Federal
3.Public Cloud – The cloud infrastructure is planned for the common public use. It may be possessed, handled, and functioned by some business enterprise, academic institution, or some government organization. It holds the premises of the cloud systems provider.
Public cloud examples include:
4.Hybrid Cloud – The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).
Hybrid cloud examples include:
- Microsoft Azure and Force.com can be configured as hybrid cloud deployments.
- Cloud bursting describes the scenario where the resource demand within a private cloud has reached a threshold and the overflow of requests for a service burst from the private cloud into the public cloud. Cloud bursting is unique to the hybrid cloud.
The private cloud and community cloud descriptions both include healthcare organizations. This demonstrates that an organization may have multiple deployment options available. To help understand how a community cloud can benefit a health care system, read A Health Care Community Cloud Takes Shape. This article describes how a Toronto hospital is working with the Canadian government and 14 area hospitals to share a fetal ultrasound application and data storage.
Table 3: Deployment Models
|Hosted internally to a limited number of a specific organization
|Hosted by several organizations with similar requirements
|Open to the public
Stores the organizations’ critical data locally (in-house) and moves the rest of the data to the cloud
Specialized Cloud Services
Providing a company with a needed IT service is the value proposition of cloud computing. If a resource can be defined, then a service can be associated with it. For example, to speed up processing of an application, it is common to add more CPUs to spread out the work. More CPU memory allows more data to reside in main memory before it is written to the backend storage device. CPUs are part of the IaaS service, and more CPUs can be requested to service an application. When multiple groups of instructions are processed at the same time rather than sequentially, this is called parallelism as a service. It is a built-in service.
Reading and writing data requires copying data between main computer memory and backend storage devices. The more this task is done, the slower the overall processing time. Caching is a process of reading blocks of data and storing it in main memory for future processing, and holding the results in main memory for later writing to auxiliary storage. Caching speeds overall processing time. Caching be defined as a service and it is called cache as a service (CaaS).
This brings us to the heart of the service discussion in cloud computing. If you can define a resource, you can define a service. The early cloud architects defined the three standard services.
These architects realized that as technology changed, new specialized services would be added, so the term anything as a service (XaaS) was created; caching and parallelism fall under this description.
Another service included in this group is a database as a service (DBaaS). Databases by their nature grow and increasingly consume more of an organization’s hosting resources. Using DBaaS in a cloud DC allows for fast provisioning to handle the unexpected growth with better manageability and optimization of computing resources. DBaaS enables multiple applications to access to an integrated database and enhanced search functionality. Other functions include sharding, the breaking up of large databases into smaller more manageable databases, and database profiling, the collection and analysis of statistics related to the data to help optimize performance. Both sharding and database profiling could be covered under XaaS, or each could be set up as a separate service.
Archie Hendryx, in an article titled Cloudy Concepts: IaaS, PaaS, SaaS, MaaS, CaaS & XaaS, explores the multiple cloud services and describes the problems each attempt to solve.