Cloud Computing Theory

Cloud Introduction

Definition of Cloud

  • The notion that "there is no cloud" implies that it's simply someone else's computer.

Entering the Cloud

  • Cloud computing merges the best aspects of mainframe, PC-enabled client-server, and Internet eras.
  • Key new elements:
    • Scaling capabilities.
    • Pay-as-you-go billing.
    • Unprecedented speeds.
    • Ease of use.

Success Stories

Instagram
  • Launched in October 2010 with 25,000 users on day one.
  • Reached 1 million users within three months.
  • Gained another 1 million users on the first day of its Android version release.
  • Acquired by Facebook in April 2012 for 1billion1 billion with only 13 employees.
  • Highlights the cloud as an ideal solution for start-ups.
  • Achieving this scale would have been impossible in a traditional data center.
Obama Campaign
  • A six-month campaign that heavily utilized cloud solutions across all service models (SaaS, PaaS, and IaaS).
  • E-commerce platform managed 1billion1 billion in fundraising.
  • Phone-calling application scaled to 7,000 concurrent users on Election Day.
  • Total costs: 1.5million1.5 million.
    • 1million1 million for an on-premise hosting company.
    • 0.5million0.5 million for 200 applications running in the cloud.

Cloud Service Models

  • Software as a Service (SaaS)
  • Platform as a Service (PaaS)
  • Infrastructure as a Service (IaaS)
  • Marketing-driven models:
    • DaaS: Desktop as a Service
    • CaaS: Communication as a Service
    • MaaS: Metal (or Monitoring) as a Service
    • XaaS: Anything as a Service

Cloud Stack Model

  • On-Premises: The user manages applications, data, runtime, middleware, O/S, virtualization, servers, storage, and networking.
  • IaaS (Infrastructure as a Service): The user manages applications, data, runtime, middleware, and O/S. The provider manages virtualization, servers, storage, and networking.
  • PaaS (Platform as a Service): The user manages applications and data. The provider manages runtime, middleware, O/S, virtualization, servers, storage, and networking.
  • SaaS (Software as a Service): The provider manages applications, data, runtime, middleware, O/S, virtualization, servers, storage, and networking.

PaaS (NIST Definition)

  • Provides the capability for the consumer to deploy consumer-created or acquired applications onto the cloud infrastructure.
  • Applications are created using provider-supported programming languages, libraries, services, and tools.
  • Consumers do not manage the underlying infrastructure, including the OS, but have control over deployed applications and configuration settings.
Mature PaaS Solutions
  • Examples include Database, Logging, Monitoring, Security, Caching, Analytics, Payment, Mail, Azure App Services.

SaaS (NIST Definition)

  • Enables consumers to use the provider's applications running on a cloud infrastructure.
  • Cloud applications are accessible from various client devices.
  • Consumers do not manage or control the cloud infrastructure, except for limited user-specific application configuration settings.

Cloud Deployment Models

  • Public Cloud
  • Private Cloud
  • Hybrid Cloud
Public Cloud
  • Multitenant environment.
  • Users pay for resource usage on a shared grid.
  • End-users are unaware of the data/software location.
  • An abstraction layer is built on top of physical hardware, and APIs are exposed.
  • Large resource pool shared by many.
Advantages
  • Pay-as-you-consume model.
  • Elasticity: dynamically increase or decrease resources as needed.
  • Focus on core competencies.
Disadvantages
  • Loss of control over SLAs (performance/uptime).
  • Regulatory issues (data privacy).
  • Limited configurations.
Private Cloud
  • Provisioned for exclusive use by a single organization, comprising multiple consumers.
  • Owned, managed, and operated by the organization, a third party, or a combination.
  • May exist on or off-premises.
Hybrid Cloud
  • Combines public and private cloud benefits.
  • Composition of two or more cloud infrastructures that remain unique but are bound together for data and application portability.
  • Use the public cloud for rapid elasticity/resource pooling.
  • Use private cloud for data ownership/privacy risks.
Multicloud
  • The use of multiple cloud computing and storage services in a single architecture.
  • Hybrid multicloud is a combination of hybrid and multicloud approaches.

Cloud Characteristics

  • Broad Network Access
  • Rapid Elasticity
  • Measured Service
  • On-Demand Self-Service
  • Resource Pooling
Broad Network Access
  • Capability is available over the network.
  • Accessed by various thin/thick client platforms (phone, tablet, PC).
Rapid Elasticity
  • Capabilities can be elastically provisioned and released, in some cases automatically, for rapid scaling.
  • Capabilities available for provisioning often appear unlimited.
  • Scaling Horizontally: scaling out or in (cheap hardware).
  • Scaling Vertically: add more resources.
On-Demand Self-Service
  • Consumers can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
Resource Pooling
  • Provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model.
  • Different physical and virtual resources are dynamically assigned and reassigned according to consumer demand.
  • Resources include storage, processing, memory, and network bandwidth.
Measured Service
  • Resource usage can be monitored, controlled, and reported.
  • Provides transparency for both the provider and consumer of the utilized service (pay-per-use).

Cloud Computing: Drivers

  • Business
    • Capacity planning
    • Cost reduction
    • Organizational Agility
  • Technology Innovations
    • Clustering (redundancy/failover is core to cloud platforms)
    • Grid computing (loosely coupled / distributed geographically)
    • Virtualization

Cloud Computing: Worst Practices

  • Migrating existing applications to the cloud can be challenging due to:
    • Tightly coupled architecture.
    • Scaling traditionally done vertically.
    • Cloud service should be stateless (storing the state on the client).

Migrating Existing Server

  • Current Server: 30003000 (hardware/software), excluding 800800 annual maintenance.
  • Cloud solution (0.500.50/hour) = 43804380/year.
  • Solutions:
    • Do nothing.
    • Replace the solution with a SaaS equivalent.

Best Practices to Avoid Disappointment

  • Application is stateless if possible.
  • Application is designed with costs in mind.
  • Application is available with cross-region redundancy.
  • Have access to the data outside the service provider to prevent vendor lock-in.
  • Start with small low-risk cloud initiatives.
  • Learn new skills, e.g., about concepts of REST-services.
  • Study each bill from your cloud provider to prevent “billshock”.