ADR-003 accepted

Azure: Platform-as-a-Service First

2006-11-01
Authors: cutler, rayozzie, steveb

Azure: Platform-as-a-Service First

Context

In 2006, Amazon launched EC2 (Infrastructure-as-a-Service). Microsoft faced pressure to respond:

  1. Internal pressure: "Ship Windows in the cloud" — leverage existing Windows Server
  2. Market pressure: AWS growing rapidly; Microsoft losing developer mindshare
  3. Technical reality: Windows Server wasn't designed for multi-tenant cloud

Ray Ozzie (Chief Software Architect) argued for a different approach.

Decision

Build Azure as Platform-as-a-Service (PaaS) first, not Infrastructure-as-a-Service (IaaS).

Why PaaS?

IaaS (AWS approach)PaaS (Azure approach)
Rent VMsRent application platform
Customer manages OSMicrosoft manages everything below app
Low abstraction, high flexibilityHigh abstraction, less ops burden
Commoditizes WindowsDifferentiates Microsoft

Steve Ballmer's Protection

Ballmer made a critical organizational decision: separate Azure from Server & Tools division.

Without this, the legacy Windows Server team would have:

  • Pushed for IaaS tied to Windows licensing
  • Prioritized existing customer migrations over new platform innovation
  • Optimized for short-term revenue over long-term positioning

Architecture

Original Azure PaaS Stack (2010)

block-beta
    columns 1
    App["Your Application"]
    PaaS["Azure Web/Worker Roles (PaaS)"]
    Fabric["Azure Fabric Controller"]
    Hyper["Hypervisor (custom, NT-based)"]
    Infra["Physical Infrastructure"]

Key Technical Decisions

DecisionRationale
Custom hypervisorOptimize for multi-tenant, not desktop virtualization
.NET first-classLeverage existing Microsoft developer ecosystem
Stateless computeScale horizontally without session affinity
SQL AzureManaged database without DBA overhead
Storage abstractionBlob/Table/Queue, not filesystem

Alternatives Considered

Option A: Windows Server in Cloud (IaaS)

Rejected initially: Would commoditize Windows; no differentiation from VMware/AWS.

Option B: Pure PaaS (Chosen for v1)

Pros:

  • Higher abstraction = higher margin
  • Harder to commoditize
  • Developer-friendly deployment model
  • Operational simplicity for customers

Cons:

  • Requires application rewrite for cloud-native
  • Doesn't address "lift and shift" enterprise needs
  • Smaller initial market

Option C: Both (Eventually)

Azure added IaaS in 2012, but PaaS foundation remained core.

Implementation

Timeline

DateMilestone
Nov 2006Ray Ozzie's "Internet Services Disruption" memo
Oct 2008Azure announced at PDC
Feb 2010Azure general availability
Jun 2012IaaS preview (Virtual Machines)
Apr 2014Renamed "Microsoft Azure" (dropped "Windows")

Dave Cutler's Role

Cutler, architect of Windows NT, built Azure's hypervisor and core infrastructure. His involvement ensured:

  • Enterprise-grade reliability
  • Efficient virtualization
  • Security architecture
  • Performance optimization

Consequences

Positive

  • +Differentiated platform — Not just "VMs in cloud"
  • +Developer adoption — PaaS simplicity attracted startups
  • +Foundation for future — Architecture scaled to support IaaS, Kubernetes, AI
  • +Margin protection — Higher-level services = higher margins

Negative

  • Slower initial growth — Enterprises wanted lift-and-shift (IaaS)
  • AWS head start — 4-year gap in IaaS capabilities
  • Migration friction — PaaS required app rewrites

Strategic Evolution

EraFocusRevenue Driver
2010-2014PaaSWeb/Worker Roles, SQL Azure
2014-2018IaaS + PaaSVirtual Machines, hybrid cloud
2018-presentAI + PlatformOpenAI, Cognitive Services, GitHub

Legacy

The PaaS-first architecture proved prescient:

  • Kubernetes and serverless built on PaaS principles
  • Higher-level services (AI, ML) are modern PaaS
  • Azure's differentiation comes from platform, not just infrastructure

"We insisted on PaaS because we knew infrastructure alone would become a commodity. Platforms create lock-in." — Ray Ozzie

ADR-003 Authors: cutler, rayozzie, steveb