Components of Windows Azure - more detail
Windows Azure Components
Windows Azure PaaS
Applications Windows Azure Service Model
Runtimes .NET 3.5/4, ASP .NET, PHP
Operating System Windows Server 2008-Compatible OS
Virtualization Windows Azure Hypervisor
Server Microsoft Blades
Database SQL Azure
Storage Windows Azure Storage (Blob, Queue, Table)
Networking Windows Azure-Configured Networking
To be more precise:
$0.05 = 1 Ghz, 768 MB, 1 x 5 Mbps
$0.12 = 1x1.6 Ghz, 01.75 GB RAM, 1 x 100Mbps
$0.24 = 2x1.6 Ghz, 03.50 GB RAM, 2 x 100Mbps
$0.48 = 4x1.6 Ghz, 07.00 GB RAM, 4 x 100Mbps
$0.96 = 8x1.6 Ghz, 14.00 GB RAM, 8 x 100Mbps
Why Windows Azure?• Azure OS take care about:• Deployment• Fail over, accessibility• OS updates• HW configuration• …
• In short,
•Developer write application•Azure run & manage application
Modeling Cloud Applications• A cloud application is typically made up of different components• Front end: e.g. load-balanced stateless web servers• Middle worker tier: e.g. order processing, encoding• Backend storage: e.g. SQL tables or files• Multiple instances of each for scalability and availability
Front-End
Mark’s Cloud Application
Front-End
Middle-Tier
Middle-Tier
Middle-Tier
HTTP/HTTPS WindowsAzure
Storage,SQL Azure
Load Balancer
Computation provides application scalability. Developers can build a combination of web and worker roles. Those roles can be replicated as needed to scale the applications and computational processing power.
Storage Services allow customers to scale to store large amounts of data – in any format – for any length of time, only paying for what they use or store.
The Fabric Controller automates load balancing and computes resource scaling
Security and Control Features include storage encryption, access authentication, and over-the-wire encryption using HTTPS. Industry certification is part of the Windows Azure roadmap.
Geographically distributed, state-of-the-art data centers host your applications and data, internet-accessible from everywhere you choose to allow.
Windows Azure
The Fabric Controller (FC)• The “kernel” of the cloud operating system• Manages datacenter hardware• Manages Windows Azure services
• Four main responsibilities:• Datacenter resource allocation• Datacenter resource
provisioning• Service lifecycle management• Service health management
• Inputs:• Description of the hardware and network resources it will control• Service model and binaries for cloud applications
ServerKernelProcess
DatacenterFabric ControllerService
Windows Kernel
Server
Word SQL Server
Fabric Controller
Datacenter
Exchange
Online
SQL Azure
Datacenter Architecture
Nodes
TOR
LB LBAgg
PDU
LB LBAgg
LB LBAgg
LB LBAgg
LB LBAgg
LB LBAgg
Racks
Datacenter Routers
Aggregation Routers and
Load Balancers
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
Nodes
TOR
PDU
……… … …
Top of RackSwitches
Power Distribution Units
High-Level FC Architecture• FC is a distributed, stateful application running on
nodes (blades) spread across fault domains • Installed by “Utility” Fabric Controller• One acts as the primary and all others keep view of world in
sync• Supports rolling upgrade, and services continue to run even if
FC fails entirely
TOR
FC1
… …
TOR
FC2
… …
TOR
FC3
… …
TOR
FC4
… …
TOR
FC5
… …
AGGLB
LB AGG LBLB LB
Nodes
Rack
Provisioning a Node• Power on node• PXE-boot Maintenance OS• Agent formats disk and
downloads Host OS• Host OS boots, runs Sysprep
/specialize, reboots• FC connects with the “Host
Agent”
Fabric ControllerRole
ImagesRole
ImagesRole
ImagesRole
Images
Image Repository
Maintenance OS
Parent OS
Node
PXEServer
Maintenance OS
Windows Azure
OS
Windows Azure
OS
FC Host Agent
Windows Azure Hypervisor
GOAL:SCALABILITYScale out by replicating instances as needed.
Allow applications to scale user and compute processing independently.
Two instance types: Web Role & Worker RoleWindows Azure applications are built with web role instances, worker role instances, or a combination of both.
Each instance runs on its own VM (virtual machine), replicated as needed.
Compute in Windows Azure
WEB ROLE WORKER ROLE
Interacts with end-useror web services
Handles incomingHTTP/HTTPS requests
Develop with Microsoft andnon-Microsoft tools:
ASP.NET, WCF, other .NET toolsJava, PHP, etc.
Can only receive inbound traffic when configured properly
Initiates their own requestsfor data or tasks from
the queue
Similar to a "batch job"or Windows service
Defining the Web and Worker Roles
GOAL:SCALABLE, DURABLE STORAGE
Windows Azure storage is an application managed by the Fabric Controller
Windows Azure applications can use native storage or SQL Azure
Application state is kept in storage services, so worker roles can replicate as needed
Blobs: large, unstructured data (audio, video, etc)
Tables: simply structured data, accessed using WCF Data Services
Queues: serially accessed messages or requests, allowing web-roles and worker-roles to interact
Storage in Windows Azure
Windows Azure
FabricController
Web Portal(API)
LB
LB
DNS
YourService
LB
LB
DNS
Service DeploymentYour
Service
FabricController
Web Portal(API)
Service ModelServiceService
DNSconfig
LB
LB
DNS
Service ScalingYour
Service
FabricController
Web Portal(API)
Service
Service
Service
Model
Service
Service
ServiceService
Service
LB
LB
DNS
Service Monitoring & RecoveryYour
Service
FabricController
Web Portal(API)
Service
Service
Service
Model !
Service
Development perspective•Logic•Load Balancer on public endpointRoles•Queue, Blob (Page / Block), Table•Storage (de facto no limits; 100 TB / one account)Azure Storage•BLOB formatted as NTFS; mounted as drive•Throughput: 87MB / s to 400 MB/s and more (cache!) – standard enterprise RAIDAzure Drive•Content Distribution Network•Additional DC to store blob closest to client computer (browser)CDN•SQL as a Service•(3 replicas + load balancer)SQL Azure•Elegant providing local (on-premise) services; Internet Services Bus•Access control based on federations.Azure AppFabric•Create / delete instance; Zarządzanie instancjami w AzureManagement API•Logging, monitoring, performance counters, etc..Diagnostics API•Auto maintenance services, failover,…Automation