Blog‎ > ‎6. DevOps‎ > ‎

4. Cloud As a Platform

Cloud as a Platform

What is a Cloud? The National Institute of Standards and Technology (NIST) has provided characteristics of the Cloud with following elements

  • On Demand Self Service : A consumer can unilaterally provision computing capabilities such as server time and network usage on a as needed basis automatically without requiring human interaction with each service provider.
  • Broad network access : Capabiliteis are available over the network and accessed through standard mechanisms that promote use by heterogeneous then or thinck client platforms (e.g. mobile, phones, tablets, workstations etc)
  • Resource Pooling : The providers computing resources are pooled to serve multiple consumers using a multi-tenant model with different physical and virtual resources dynamically assigned and reassigned accrding to consumer demand There is a sense of location independence in that the customer generally has no control over or knowledge of the exact location of the provided resources but may be able to specify the location at a higher level of abstraction.
  • Measured Service : Cloud systems automatically control and optimize the resource use by leveraging a metering capability at some lever of abstraction appropriate to the type of service.

From the perspective of operations and DevOps, the most important of these characteristics are on-demand self-service and measured service. Even though the cloud provides what appears to be unlimited resources that you can acquire at will, you must still pay for their use.

NIST also characterizes the various types of services available from the cloud providers. NIST defines three types of services, any one of which can be used in a DevOps context.

Service Model

Examples

SaaS : Software as a Service

E-mail, online games, CRM, virtual desktops etc.

PaaS : Platform as a Service

Web Servers, Database, execution runtime, development tools etc.

IaaS : Infrastructure as a Service

Virtual Machines, storage, load balancers, networks etc.

Virtualization

The fundamental enabler of the cloud is virtualization over hundreds of thousands of hosts accessible over the internet. In cloud computing, a virtual machine (VM) is an emulation of a physical machine. A VM image is a file that contains a bootable operating system and some software installed on it. A VM image provides the information required to launch a VM.

Three of the unique aspects of the cloud that impact DevOps are

  • The ability to create and switch environments
  • The ability to create VMs easily
  • Management of Databases

Cloud and DevOps

The Cloud has emerged as a major trend in IT during recent years. Its characteristics, described above, allows the scaling of applications virtually by managing the VMs effectively. If architected properly, applications can indeed scale quickly and thus you can avoid disappointing users when your new app goes “viral” and your users numbers double every couple of hours. Additionally, when the demand decreases you are not stuck with major hardware investments but can simply release resources that are no longer needed.

Using the cloud opens up many interesting opportunities in the context of the DevOps

The cloud rests on platform that is inherently distributed and exploits virtualization to allow rapid expansion and contraction of the resources available to a given user.

Within large distributed environments, failure of the individual components is to be expected. Failure must  be accommodated. The accommodations involve management of state and recognizing and recovering from requests that take an exceedingly long time.

From an operational perspective, controlling the proliferation of VMs, managing different database management systems and ensuring the environments meet the need of the development and operations tasks are new considerations associated with the cloud.

Other Topics on DevOps