Cloud Computing

History of Cloud Computing

  • First Age (1970s)

    • Shift from centralized to decentralized network design.

    • Processing closer to users (thin to thick clients).

    • Emergence of tightly coupled applications.

  • Second Age (1980s)

    • Rise of Internet improving user connectivity.

    • Increased compute load closer to users.

    • Transition to independent competing companies leading to faster innovation and lower costs.

  • Third Age (1990s)

    • Explosion of data with mobility and wireless connectivity.

    • Rebirth of thin clients (browsers) with server-side computing.

    • Introduction of virtualization for improved resource utilization.

  • Present Times (2000s)

    • Adoption of loosely coupled applications benefiting from scalable infrastructure.

    • Innovations in billing and user access to fractional server resources.

    • Shift towards data-centric security.

Cloud Computing: IT-as-a-Service

  • Value Delivery

    • Key market sectors: Software, Infrastructure, and flexibility in environment.

    • Significant reduction in software costs and application development platforms.

Formal Definition of Cloud Computing

  • Model for ubiquitous, on-demand network access to a shared pool of computing resources.

    • Composed of five essential characteristics, three service models, and four deployment models.

Essential Characteristics

  • On-demand self-service: Consumers manage their own services without provider assistance.

  • Broad network access: Accessibility across diverse client platforms.

  • Resource pooling: Dynamic allocation to serve multiple consumers.

  • Rapid elasticity: Resources can scale quickly to match demand.

  • Measured service: Monitoring and reporting on resource consumption.

Service Models Overview

  • Infrastructure-as-a-Service (IaaS): Users manage software, not infrastructure.

  • Software-as-a-Service (SaaS): Centralized applications for users without access to underlying infrastructure.

  • Platform-as-a-Service (PaaS): Integrates IaaS and SaaS capabilities for development.

Deployment Models

  • Public Cloud: General public access with pay-as-you-go models.

  • Private Cloud: Single-tenant clouds for more control.

  • Hybrid Cloud: Combination of public and private, maximizing resource utilization.

  • Community Cloud: Shared infrastructure for specific community users with common concerns.

Application Migration Strategies

  • Rehost (lift-and-shift): Quick migration with minimal changes, often reverting to existing limitations.

  • Refactor: Significant modifications for cloud advantages, often restructuring applications.

  • Replatform: Intermediate adjustments to facilitate cloud integration.

  • Retire/Replace: Decommissioning applications when more effective solutions are available.

Evaluating Candidates for Migration

  • Complexity: Consider the development background and dependencies.

  • Criticality: Assess user reliance and acceptable downtime.

  • Compliance Availability: Regulatory requirements and uptime standards.

Risks in Application Migration

  • Unforeseen technical challenges and costs.

  • Potential downtime and change management issues.