Cloud Computing


From consumer point of view:

 Cloud computing is a service that provides on-demand resources—server instances, file storage, databases, or applications—over a network, typically the Internet.

  • why called cloud?
    • end user is not aware of or responsible for any details of the procurement, implementation, or management of the infrastructure that underpins those resources
  • end user is interested in and pays for only the services provided by the cloud

From provider point of view:

  • provisioning a cloud is like provisioning any other type of large-scale datacenter
  • almost always uses one or more methods of virtualization to ensure that resources are reliably and quickly provisioned to the client who requires them

NIST 800-145 Cloud Computing Definition

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.

Key Characteristics of Cloud Computing

High Availability (HA)

  • service experiences very little downtime
  • E.g., a service with “Five Nines” or 99.999% availability experiences only 5 minutes and 15 seconds annual downtime
  • Downtime can occur as a result of scheduled maintenance and unexpected outages

Scalability

Scalability is the capacity to increase resources to meet demand within similar cost ratios.

  • costs involved in supplying the service to more users are linear
    • E.g., if service demand doubles, costs do not more than double
    • If costs more than double, the system is less scalable
  • two types of scalability:
    • horizontal/scaling out
      • add more resources in parallel with existing resources
      • adding nodes
    • vertical/scaling up
      • increase the power of existing resources
      • adding resources to each node

Rapid Elasticity

  • Rapid elasticity
    • the system’s ability to handle changes to demand in real time
    • system with high elasticity will not experience loss of service or performance if demand suddenly doubles
    • may be important for the system to be able to reduce costs when demand is low

Resource Pooling

Resource pooling means that the hardware making up the cloud provider’s datacenter is not dedicated or reserved to a single customer account.

  • To meet availability, scalability, and elasticity requirements, cloud providers must be able to provision and deprovision resources automatically
    • achieved through resource pooling and virtualization
  • layers of virtualization used in the cloud architecture allow the provider to provision more CPU, memory, disk, or network resource using management software
    • rather than having to go to the datacenter floor, unplug a server, add a memory module, and reboot

Broad Network Access

Broad network access means services are consistently accessible over the network.

  • no matter user’s physical location, can access resources in the cloud

On-demand Self-service

On-demand self-service means customers can scale compute or storage needs with little or no intervention from the cloud provider.

Metered Utilization

metered utilization is per-use billing for resources consumed by the cloud.

  • aka Measured/metered service
  • metering measurement is based on the type of resource
    • e.g., storage, processing, bandwidth, or active users
  • most activities in the cloud are metered
  • enables precise pricing of services