Introduction to Cloud Computing

Cloud Computing is a term generally used to describe massive data centers available to large numbers of users and organizations with great economies of scale, high amount of scalability, and a large amount of engineering redundancy. Additionally, the term cloud computing is generically used to describe the use of computer resources delivered through the Internet. The term cloud comes from the use of a cloud shaped symbol that represents abstraction of rather complex infrastructure that enables the processing of software, hardware, computing, and data storage services.

Figure1:  Basic Cloud Computing Model

Virtualization is the fundamental technology that powers cloud computing as virtualization is the act of creating a virtual version of computer systems, storage devices, and network resources. It separates computing environments from physical infrastructures so that multiple operating systems and applications can execute simultaneously on the same physical hardware.  Virtualization enables multiple organizations to share the same infrastructure.

The National Institute of Standards and Technology (NIST) defines cloud computing as:

“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 model is composed of five essential characteristics, four deployment models, and three service models”.

Essential Characteristics of Cloud Environments

The essential characteristics of cloud computing help define what is a cloud environment.  Many computing applications and services are hosted in off-site data centers.  But that does not make the computing environment be a true cloud environment.  According to NIST, cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal effort by the consumer.

Moreover, NIST specifies that to be a complete cloud environment, the environment must contain the following five essential characteristics: on-demand self-service, broad network access, resource pooling / multi-tenant access, rapid elasticity, and measured service.

1)  On-Demand Self-Service:  Computing resources including virtual machines, storage, network devices, and applications can be rapidly be provisioned and released in both a simple and flexible manner whenever the resources are required through the use an online control panel.  The consumer performs all the actions needed to acquire the computing resource without the need of requesting resources through a formal management process and without procuring physical hardware.

2)  Broad Network Access:  Computing resources are hosted within multiple data centers around the world and can be accessed from any location through various types of computing devices including desktop computers, laptop computers, tablets, and mobile/smart phones. Capabilities are available over the Internet and are available through use of a standard user interface including a web browser or application.

3)  Resource Pooling / Multi-Tenant Access:  Computing resources are provided to multiple different tenants (i.e. organizations, individuals, & consumers) within the same environment at the same time. Computing resources are dynamically adjusted to suit each tenant’s computing needs without any changes being apparent to other tenants. In addition, physical and virtual resources are automatically assigned and reassigned to tenants according to the demand on the entire environment.

4)  Rapid Elasticity:  Computing resources can be quickly and automatically provisioned and released at any time such that a consumer’s computing resources matches the demand for computing resources as closely as possible. To the consumer of the cloud environment, the computing resources available for provisioning appear to be unlimited and the resources can be appropriated in any quantity at any time.

5)  Measured Service:  Computing resources within the environment are constantly monitored to enable resource optimization and reporting of usage to consumers. Usage of computing resources is metered, providing transparency for both the provider of the environment and consumer of the utilized service. Additionally, consumers are only charged computing resources that are used.

Types of Data Centers / Cloud Deployment Models

A cloud deployment model is defined according to where the infrastructure for the deployment resides and who has control over that infrastructure. NIST defines four cloud deployment models: public clouds, private clouds, hybrid clouds, and community clouds. Conversely, on-premise is a traditional way to host a data center and is not a cloud deployment model.

1)  On-Premise Data Center:  Hardware and network devices are physically located within the confines of the organization. Computing resources, hardware, network device, storage, and software are completely owned and managed by the organization. Computing resources are available through the organization’s private network.

2)  Public Cloud:  Computing resources, hardware, software, and network devices are owned and managed by third-party providers and use of hardware, storage, and network devices is shared among multiple client organizations. Computing resources are subsequently available to consumers over the public Internet. Public cloud services may be free to the consumer or offered to the consumer through a variety of subscription or on-demand pricing schemes, including a pay-per-usage model.

3)  Private Cloud:  Computing resources, hardware, software, and network devices are used exclusively by one organization with no sharing of resources between organizations. Computing resources are available to users through a private network. Private cloud can be physically located within an organization’s facility (i.e. on-premise) or can be located with another organization’s facility (i.e. off-premise). Private clouds can be managed and operated by the organization itself or a third party provider.

4)  Hybrid Cloud:  Combine on-premise data centers and/or private clouds with public clouds so that organizations can combine aspects of each type of data center implementation. Moreover, orchestration occurs between the two environments. Cloud orchestration is the use of programming technology to manage the interconnections and interactions among workloads on public and private clouds. Hybrid clouds enable organizations to deploy a private cloud to host sensitive or critical applications, and to use a public cloud to host less-critical applications.

5)  Community Cloud:  Integrate the computing resources of different clouds to address the specific needs of an industry or business sector. Infrastructure is shared by several organizations and may be managed by the organizations themselves or by a third party provider. A community cloud contains a combination of public clouds, private clouds, and hybrid clouds. Additionally, community clouds are commonly implemented over multiple administrative domains. Community clouds exist for: Media Industry, Healthcare Industry, Energy Industry, Public Sector, & Scientific Research.

Cloud Service Models

According to the NIST definition of the cloud, there are three main cloud service models representing the distinct ways that computing, development, and application functionality are provided to consumers through the Internet: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS).

Figure 2:  Features of Cloud Service Models

1) Infrastructure-as-a-Service (IaaS):  Provisioning of computing resources including virtualized machines, virtualized servers, and virtualized infrastructure provided over the Internet. Moreover, the cloud provider hosts the infrastructure components traditionally present in on-premise data centers including servers, hardware, storage, and network devices. IaaS provides organizations with the highest level of flexibility and management control over computing resources. IaaS provides the same technologies and capabilities as a conventional data center without the need of having to physically maintain or manage the physical components of the data center. With IaaS, infrastructure components are provided to an organization through a dashboard or through an application programming interface (API). IaaS is most like conventional processing of computing resources as organizations still administer servers, hardware, storage, and network devices, as well as handling installations and management of applications.

Examples of IaaS:
 •  Amazon Web Services (AWS)
 •  Microsoft Azure
 •  Google Compute Engine (GCE)
 •  IBM Cloud

Key Features of IaaS:
 •  Saves organizations cost and hassle of procuring and maintaining hardware.
 •  Rapid provisioning of computing resources.
 •  Infrastructure is scalable depending on resource needs.
 •  Removal of single point of failure for hardware.

2) Platform-as-a-Service (PaaS):  Provides application development tools to developers and system administrators over the Internet. The cloud provider hosts the hardware, servers, storage, and network devices on its own infrastructure and conducts the administration of the tools and applications.  PaaS removes the need for organizations to manage the underlying infrastructure of development environments and allows organization to focus on the deployment and management of applications. Moreover, PaaS provides a framework for custom software and application development to organization through the Internet. Development environments are delivered over the web and developers do not have to manage operating systems, software updates, storage, or network infrastructure. Fundamentally, PaaS enables the rapid development of applications and simplifies the management of the development environment. PaaS does not typically replace an organization’s information technology infrastructure. Instead, PaaS provides key services including database management and custom development environments.

Examples of PaaS:
 •  AWS Lambda
 •  AWS RedShift
 •  Windows Azure
 •  Force.com
 •  Red Hat OpenShift
 •  Google App Engine

Key Features of PaaS:
 •  Provides tools to test, develop and host applications.
 •  Cloud provider manages security, operating systems, server software, upgrades, and backups.
 •  Removes dependency on administration of infrastructure.
 •  Facilitates collaborative development work.

3) Software-as-a-Service (SaaS):  A software distribution model in which a vendor hosts an application and makes the application available to users over the Internet via a web browser. The service provider operates and manages all the hardware and software included within the solution. Moreover, software vendors and cloud providers host and manage the application itself as well as the data, middleware, servers, storage, and network infrastructure.  SaaS provides advantages to organizations by greatly reducing the time and money spent on tedious tasks such as installing, managing, and upgrading software.

A common example of a SaaS application is web-based email.  With web-based email, users can send and receive email without the organization having to the manage and maintain the servers and operating systems that the email program runs on.

Examples of SaaS:
 •  Google Apps
 •  Dropbox
 •  Office 365
 •  Salesforce.com
 •  GoToMeeting
 •  Cisco WebEx

Key Features of SaaS:
 •  Provides users applications via a subscription model.
 •  Cloud provider manages installation and upgrades of software.
 •  Use of resources can be scaled depending on service needs.
 •  Applications are available anywhere from any device.
 •  Applications have very large economies-of-scale.

Figure 3:  Overview of Cloud Service Models

In general, all three cloud service models reduce the hardware and software investment that an organization needs to make over an implementation of an on-premise data center.  Within each of the cloud service models, an external organization administers a common data center and provides either virtualized computing resources, development environment, or a hosted application to the consumer through the Internet.

IaaS:  The cloud provider hosts the infrastructure, network, storage, servers, and virtualization capabilities while providing virtualized computing resources to consumers.

PaaS:  The cloud provider hosts the infrastructure, storage, servers, virtualization, operating systems, and development environments while providing development tools to consumers.

SaaS:  The cloud provider hosts the infrastructure, storage, servers, virtualization, operating systems, development environments, data management, and applications while providing application functionality and/or development tools to consumers.

 

Figure 4:  Summary of Cloud Service Models

Share