Defining the Cloud #

The term cloud has been used historically as a metaphor for the Internet and has become a familiar cliché. This usage was originally derived from its common depiction in network diagrams as an outline of a cloud, used to represent the transport of data across carrier backbones (which owned the cloud) to an endpoint location on the other side of the cloud.

The cloud itself  is a set of hardware, networks,  storage, services,  and interfaces that enable the delivery of computing as a service. Cloud services include the delivery of software, infrastructure, and storage over the internet (either as separate components or a complete platform) based on user demand.

The world of the cloud has lots of participants:

  • The end user doesn’t really have to know anything about the underlying technology. In small businesses, for example, the cloud provider becomes the de facto data center. In larger organizations, the IT organization oversees the inner workings of both internal resources and external cloud resources.
  •  Business management needs to take responsibility for overall governance of data or services living in a cloud. Cloud service providers must provide a predictable and guaranteed service level and security to all their constituents.
  • The cloud service provider is responsible for IT assets and maintenance.

Overall, the cloud embodies the following four basic characteristics:

  • Elasticity and the ability to scale up and down
  • Self-service provisioning and automatic deprovisioning
  • Application programming interfaces (APIs)
  • Billing and metering of service usage in a pay-as-you-go model

Elasticity and scalability:

The service provider can’t anticipate how customers will use the service. One customer might use the service three times a year during peak selling seasons, whereas another might use it as a primary development platform for all of its applications. Therefore, the service needs to be available all the time (7 days a week, 24 hours a day) and it has to be designed to scale upward for high periods of demand and downward for lighter ones. Scalability also means that an application can scale when additional users are added and when the application requirements change. This ability to scale is achieved by providing elasticity. Think about the rubber band and its properties. If you’re holding together a dozen pens with a rubber band, you probably have to fold it in half. However, if you’re trying to keep 100 pens together, you will have to stretch that rubber band. Why can a single rubber band accomplish both tasks? Simply, it is elastic and so is the cloud. : Elasticity refers to the ability to flex to meet the needs and preferences of users on a near real-time basis, in response to supply and demand triggers. In the cloud context, elasticity refers to the ability of a service or an infrastructure to adjust to meet fluctuating service demands by automatically provisioning or de-provisioning resources or by moving the service to be executed on another part of the system.

Self-service provisioning:

Customers can easily get cloud services without going through a lengthy process. The customer simply requests an amount of computing, storage, software, process, or other resources from the service provider. Contrast this on-demand response with the process at a

typical data center. When a department is about to implement a new application, it has to submit a request to the data center for additional computing hardware, software, services, or process resources. The data center gets similar requests from departments across the company and must sort through all requests and evaluate the availability of existing resources versus the need to purchase new hardware. After new hardware is purchased, the data center staff has to configure the data center for the new application. These internal procurement processes can take a long time, depending on company policies. Of course, nothing is as simple as it might appear. While the on-demand provisioning capabilities of cloud services eliminate many time delays, an organization still needs to do its homework. These services aren’t free; needs and requirements must be determined before capability is automatically provisioned.

Application programming interfaces (APIs):

Cloud services need to have standardized APIs. These interfaces provide the instructions on how two application or data sources can communicate with each other. A standardized interface lets the customer more easily link a cloud service, such as a customer relationship management system with a financial accounts management system, without having to resort to custom programming.

Billing and metering of services:

A cloud environment needs a built-in service that bills customers. And, of course, to calculate that bill, usage has to be metered (tracked). Even free cloud services (such as Google’s Gmail or Zoho’s Internet-based office applications) are metered.

Cloud Computing