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
- 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 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 in fundraising.
- Phone-calling application scaled to 7,000 concurrent users on Election Day.
- Total costs: .
- for an on-premise hosting company.
- 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: (hardware/software), excluding annual maintenance.
- Cloud solution (/hour) = /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”.