SlideShare une entreprise Scribd logo
1  sur  41
A Deep Look Inside Windows Azure AND ITS Virtual Machine Wely Lau (wely@ncs.com.sg)  Microsoft MVP, Windows Azure Solutions Architect, NCS Pte Ltd Blog : http://wely-lau.net
Agenda Introduction (10 mins)  Windows Azure Service Model (10 mins) Fabric Controller Internal (10 mins) Deploying a Service (15 mins)  Service Allocation and Service Healing (10 mins) Inside Windows Azure Virtual Machine (15 mins)  Q & A (5 mins)
introduction
What is a “Cloud”? Cloud: on-demand, scalable, multi-tenant, self-service compute and storage resources
Types of Cloud Infrastructure as a Service (IaaS): basic compute and storage resources On-demand servers Amazon EC2, VMWarevCloud, Rackspace Platform as a Service (PaaS): cloud application infrastructure On-demand application-hosting environment E.g. Google AppEngine, Salesforce.com, Windows Azure Software as a Service (SaaS): cloud applications On-demand applications E.g. Office 365, GMail, Microsoft Office Web Companions
Cloud: Efficiency Versus Control Windows Azure Efficiency Control + Cost
Windows Azure Windows Azure is an OS for the data center Model: Treat the data center as a machine Handles resource management, provisioning, and monitoring Manages application lifecycle Allows developers to concentrate on business logic Provides common building blocks for distributed applications Reliable queuing, simple structured storage, SQL storage Application services like access control and connectivity
Windows Azure Platform Building Blocks Fabric Controller Compute ,[object Object]
Worker Role
VM RoleStorage ,[object Object]
Blobs
QueuesVirtual Network ,[object Object]
Traffic ManagerReporting Database Data Sync Access Control Service Bus Caching
Sidebar: What’s with all these “Fabrics”? The Windows Azure Fabric Controller is totally, completely, unrelated to AppFabric AppFabric is a brand that encompasses: Windows Server AppFabric: a set of components for building composite applications based on Windows Communication Foundation and Windows Workflow Windows Azure AppFabric: Cloud services for connecting cloud and on-premise applications  AppFabricAccess Control Service AppFabric Service Bus AppFabric Cache Built as Windows Azure services
Windows Azure Service Model
Multi-tier 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 Middle-Tier Middle-Tier Windows Azure Storage,SQL Azure Middle-Tier Front-End HTTP/HTTPS Load Balancer My Cloud Application
The Windows Azure Service Model A Windows Azure application is called a “service” Definition information (Role name, Role type, VM size, etc.) Configuration information (# of instances, # of update domains, etc.) At least one “role” Your codes Roles are like DLLs in the service “process” Collection of code with an entry point that runs in its own virtual machine There are currently three role types: Web Role: IIS7 and ASP.NET in Windows Azure-supplied OS Worker Role: arbitrary code in Windows Azure-supplied OS VM Role: uploaded VHD with customer-supplied OS My  Service Role: Middle-Tier Definition Type: Worker VM Size: Large Endpoints: Internal-1 Role: Front-End Definition Type: Web VM Size: Small Endpoints: External-1 Configuration Instances: 3 Update Domains: 2 Fault Domains: 2 Configuration Instances: 2 Update Domains: 2 Fault Domains: 2
Service Model Files Service definition is in ServiceDefinition.csdef Service configuration is in ServiceConfiguration.cscfg CSPackprogram Zips service binaries and definition into service package file (service.cscfg)
Availability: Update Domains Purpose: Ensure service stays up while updating and Windows Azure OS updates System considers update domains when upgrading a service 1/Update domains = percent of service that will be offline Default is 5 and max is 20, but you can override with upgradeDomainCount service definition property The Windows Azure SLA is based on at least two update domains and two role instances in each role Middle Tier-3 Front-End-1 Middle Tier-2 Middle Tier-1 Front-End-2 Front-End-1 Front-End-2 Middle Tier-1 Middle Tier-2 Middle Tier-3 Update Domain 1 Update Domain 2 Update Domain 3
Availability:  Fault Domains Purpose: Avoid single points of failures Similar concept to update domains But you don’t control the updates Unit of failure based on data center topology E.g. top-of-rack switch on a rack of machines Windows Azure considers fault domains when allocating service roles 2 fault domains per service Will try and spread roles out across more E.g. don’t put all roles in same rack Front-End-2 Front-End-1 Front-End-2 Front-End-1 Middle Tier-2 Middle Tier-2 Middle Tier-1 Middle Tier-1 Middle Tier-3 Middle Tier-3 Fault Domain 1 Fault Domain 2 Fault Domain 3
Fabric controller internals
“sketch” of Datacenter Architecture Datacenter Routers Aggregation Routers and Load Balancers Agg Agg Agg Agg LB LB LB LB LB LB LB LB Top of Rack Switches TOR TOR TOR TOR TOR TOR TOR TOR TOR … … … … Racks Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes PDU PDU PDU PDU PDU PDU PDU PDU PDU Power Distribution Units
Windows Azure Datacenters
Datacenter Clusters Datacenters are divided into “clusters” Approximately 1000 rack-mounted server (we call them “nodes”) Each cluster is managed by a Fabric Controller (FC)  FC is responsible for: Blade provisioning Blade management Service deployment and lifecycle Datacenter network FC FC FC Cluster 1 Cluster 2 … Cluster n
Inside a Cluster FC is a distributed, stateful application running on nodes (servers) spread across fault domains Top blades are reserved for FC Installed by “Utility Fabric Controller” One FC instance is 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 TOR TOR TOR TOR AGG LB LB LB LB LB FC3 FC1 FC2 FC4 FC5 FC3 … … … … … … … … … … Nodes Rack
The Fabric Controller (FC) X 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 Server Kernel Process Datacenter Fabric Controller Service Word SQL Server Exchange Online SQL Azure Windows Kernel Fabric Controller Server Datacenter (DataCenter.xml)
Cluster Resource Description The Fabric Controller is bootstrapped with a Utility Fabric Controller (UFC) Single-instance FC  Used for bootstrap and FC updates UFC feeds FC a description of the cluster physical and logical resources in Datacenter.xml Server IP addresses Pool of network IP addresses to assign services Network hardware and Power Distribution Unit addresses
Inside a Node Physical Node Guest Partition Guest Partition Guest Partition Role Instance Role Instance Role Instance Trust boundary Guest Agent Guest Agent Guest Agent Host Partition Image Repository (OS VHDs, role ZIP files) FC Host Agent Fabric Controller (Primary) Fabric Controller (Replica) Fabric Controller (Replica) …
Fabric Viewer Used by Windows Azure Operation Team to view the fabric inside the datacenter racks clusters
Deploying a service
Deploying a Service to the Cloud:The 10,000 foot view Service Service package uploaded to portal Windows Azure Portal Service passes service package to “Red Dog Front End” (RDFE) Azure service RDFE converts service package to native “RD” version RDFE sends service to Fabric Controller (FC) based on target region FC stores image in repository and deploys and activates service Portal Service RDFE Service US-North Central Datacenter FC
Deploying a Service to the Cloud: a DEEP Look
Service Allocation and Service Healing
Service Resource Allocation Goal: allocate service components to available resources while satisfying all hard constraints  HW requirements: CPU, Memory, Storage, Network Fault domains Secondary goal: Satisfy soft constraints  Prefer allocations which will simplify servicing the host OS/hypervisor Optimize network proximity: pack nodes Service allocation produces the goal state for the resources assigned to the service components Node and VM configuration (OS, hosting environment) Images and configuration files to deploy Processes to start Assign and configure network resources such as LB and VIPs
Service Allocation Example  Role B Count: 2 Update Domains: 2  Size: Medium Role A Count: 3 Update Domains: 3  Size: Large www.mycloudapp.net www.mycloudapp.net Load Balancer 10.100.0.185 10.100.0.36 10.100.0.122 Fault Domain 1 Fault Domain 2 Fault Domain 3
Node and Role Health Maintenance FC maintains service availability by monitoring the software and hardware health Based primarily on heartbeats  Automatically “heals” affected roles
Service Healing Role B Worker Role Count: 2 Update Domains: 2 Size: Medium Role A – V2 VM Role  (Front End) Count: 3 Update Domains: 3 Size: Large www.mycloudapp.net www.mycloudapp.net Load Balancer 10.100.0.185 10.100.0.191 10.100.0.36 10.100.0.122 Fault Domain 1 Fault Domain 2 Fault Domain 3
Inside windows azure vm
Windows Azure VM Sizes Each Windows Azure compute instance represents a virtual server.  Although many resources are dedicated to a particular instance, some resources associated to I/O performance (network bandwidth and disk subsystem), are shared among the compute instances on the same physical host.  The different instance types will provide different minimum performance from the shared resources depending on their size.
Local Drives OS Volume C: = Resource local drive (transient storage for VM) D: = OS drive E: = Application’s code (size of the package) Resource Volume Role Volume Guest Agent Role Host Role Entry Point
Runtime installed .NET 3.5 SP1 .NET 4 (RTM) VC80 CRT (8.0.50727) VC90 CRT (9.0.30729) URL Rewrite Module 2.0 VC10 CRT (e.g. MSVCR100.DLL) is not fusion-ized and can be packaged together with the application Others? Java runtime (planned in future) PHP PHP SDK for Windows Azure (“Web Platform Installer”) Else? Start-up Task is your friend 

Contenu connexe

En vedette

Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services PlatformJanakiram MSV
 
How to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesHow to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesSolarWinds
 
Implement SQL Server on an Azure VM
Implement SQL Server on an Azure VMImplement SQL Server on an Azure VM
Implement SQL Server on an Azure VMJames Serra
 
Apostila comunicação visual
Apostila comunicação visualApostila comunicação visual
Apostila comunicação visualAdriano Borges
 
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line EngineeringVanilson Buregio
 
W H O Medical Schools
W H O Medical SchoolsW H O Medical Schools
W H O Medical Schoolsguest60fe22
 
Rfs Scott Fain W Loan Mod
Rfs Scott Fain W Loan ModRfs Scott Fain W Loan Mod
Rfs Scott Fain W Loan ModScott-Fain.com
 
Project Management_Network_Oct2013
Project Management_Network_Oct2013Project Management_Network_Oct2013
Project Management_Network_Oct2013Miguel Garcia
 
Edital 05 2013_cn_pq_gates
Edital 05 2013_cn_pq_gatesEdital 05 2013_cn_pq_gates
Edital 05 2013_cn_pq_gatesDenizecomZ
 
Agenda EAESP
Agenda EAESPAgenda EAESP
Agenda EAESPFGV-EAESP
 
Apresentação farma ago 11
Apresentação farma ago 11Apresentação farma ago 11
Apresentação farma ago 11Roberto Falcão
 

En vedette (17)

Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services Platform
 
How to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesHow to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machines
 
Implement SQL Server on an Azure VM
Implement SQL Server on an Azure VMImplement SQL Server on an Azure VM
Implement SQL Server on an Azure VM
 
AWS vs. Azure
AWS vs. AzureAWS vs. Azure
AWS vs. Azure
 
CV
CVCV
CV
 
Apostila comunicação visual
Apostila comunicação visualApostila comunicação visual
Apostila comunicação visual
 
Revguavira012
Revguavira012Revguavira012
Revguavira012
 
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
 
Apostila sqlserver65v1a
Apostila sqlserver65v1aApostila sqlserver65v1a
Apostila sqlserver65v1a
 
W H O Medical Schools
W H O Medical SchoolsW H O Medical Schools
W H O Medical Schools
 
Rfs Scott Fain W Loan Mod
Rfs Scott Fain W Loan ModRfs Scott Fain W Loan Mod
Rfs Scott Fain W Loan Mod
 
Informeesag 2013.1
Informeesag 2013.1Informeesag 2013.1
Informeesag 2013.1
 
Project Management_Network_Oct2013
Project Management_Network_Oct2013Project Management_Network_Oct2013
Project Management_Network_Oct2013
 
Edital 05 2013_cn_pq_gates
Edital 05 2013_cn_pq_gatesEdital 05 2013_cn_pq_gates
Edital 05 2013_cn_pq_gates
 
Agenda EAESP
Agenda EAESPAgenda EAESP
Agenda EAESP
 
Apresentação farma ago 11
Apresentação farma ago 11Apresentação farma ago 11
Apresentação farma ago 11
 
Nutrição Unisinos
Nutrição UnisinosNutrição Unisinos
Nutrição Unisinos
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

A Deep Look Inside Windows Azure and Its VM

  • 1. A Deep Look Inside Windows Azure AND ITS Virtual Machine Wely Lau (wely@ncs.com.sg) Microsoft MVP, Windows Azure Solutions Architect, NCS Pte Ltd Blog : http://wely-lau.net
  • 2. Agenda Introduction (10 mins) Windows Azure Service Model (10 mins) Fabric Controller Internal (10 mins) Deploying a Service (15 mins) Service Allocation and Service Healing (10 mins) Inside Windows Azure Virtual Machine (15 mins) Q & A (5 mins)
  • 4. What is a “Cloud”? Cloud: on-demand, scalable, multi-tenant, self-service compute and storage resources
  • 5. Types of Cloud Infrastructure as a Service (IaaS): basic compute and storage resources On-demand servers Amazon EC2, VMWarevCloud, Rackspace Platform as a Service (PaaS): cloud application infrastructure On-demand application-hosting environment E.g. Google AppEngine, Salesforce.com, Windows Azure Software as a Service (SaaS): cloud applications On-demand applications E.g. Office 365, GMail, Microsoft Office Web Companions
  • 6. Cloud: Efficiency Versus Control Windows Azure Efficiency Control + Cost
  • 7. Windows Azure Windows Azure is an OS for the data center Model: Treat the data center as a machine Handles resource management, provisioning, and monitoring Manages application lifecycle Allows developers to concentrate on business logic Provides common building blocks for distributed applications Reliable queuing, simple structured storage, SQL storage Application services like access control and connectivity
  • 8.
  • 10.
  • 11. Blobs
  • 12.
  • 13. Traffic ManagerReporting Database Data Sync Access Control Service Bus Caching
  • 14. Sidebar: What’s with all these “Fabrics”? The Windows Azure Fabric Controller is totally, completely, unrelated to AppFabric AppFabric is a brand that encompasses: Windows Server AppFabric: a set of components for building composite applications based on Windows Communication Foundation and Windows Workflow Windows Azure AppFabric: Cloud services for connecting cloud and on-premise applications AppFabricAccess Control Service AppFabric Service Bus AppFabric Cache Built as Windows Azure services
  • 16. Multi-tier 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 Middle-Tier Middle-Tier Windows Azure Storage,SQL Azure Middle-Tier Front-End HTTP/HTTPS Load Balancer My Cloud Application
  • 17. The Windows Azure Service Model A Windows Azure application is called a “service” Definition information (Role name, Role type, VM size, etc.) Configuration information (# of instances, # of update domains, etc.) At least one “role” Your codes Roles are like DLLs in the service “process” Collection of code with an entry point that runs in its own virtual machine There are currently three role types: Web Role: IIS7 and ASP.NET in Windows Azure-supplied OS Worker Role: arbitrary code in Windows Azure-supplied OS VM Role: uploaded VHD with customer-supplied OS My Service Role: Middle-Tier Definition Type: Worker VM Size: Large Endpoints: Internal-1 Role: Front-End Definition Type: Web VM Size: Small Endpoints: External-1 Configuration Instances: 3 Update Domains: 2 Fault Domains: 2 Configuration Instances: 2 Update Domains: 2 Fault Domains: 2
  • 18. Service Model Files Service definition is in ServiceDefinition.csdef Service configuration is in ServiceConfiguration.cscfg CSPackprogram Zips service binaries and definition into service package file (service.cscfg)
  • 19. Availability: Update Domains Purpose: Ensure service stays up while updating and Windows Azure OS updates System considers update domains when upgrading a service 1/Update domains = percent of service that will be offline Default is 5 and max is 20, but you can override with upgradeDomainCount service definition property The Windows Azure SLA is based on at least two update domains and two role instances in each role Middle Tier-3 Front-End-1 Middle Tier-2 Middle Tier-1 Front-End-2 Front-End-1 Front-End-2 Middle Tier-1 Middle Tier-2 Middle Tier-3 Update Domain 1 Update Domain 2 Update Domain 3
  • 20. Availability: Fault Domains Purpose: Avoid single points of failures Similar concept to update domains But you don’t control the updates Unit of failure based on data center topology E.g. top-of-rack switch on a rack of machines Windows Azure considers fault domains when allocating service roles 2 fault domains per service Will try and spread roles out across more E.g. don’t put all roles in same rack Front-End-2 Front-End-1 Front-End-2 Front-End-1 Middle Tier-2 Middle Tier-2 Middle Tier-1 Middle Tier-1 Middle Tier-3 Middle Tier-3 Fault Domain 1 Fault Domain 2 Fault Domain 3
  • 22. “sketch” of Datacenter Architecture Datacenter Routers Aggregation Routers and Load Balancers Agg Agg Agg Agg LB LB LB LB LB LB LB LB Top of Rack Switches TOR TOR TOR TOR TOR TOR TOR TOR TOR … … … … Racks Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes PDU PDU PDU PDU PDU PDU PDU PDU PDU Power Distribution Units
  • 24. Datacenter Clusters Datacenters are divided into “clusters” Approximately 1000 rack-mounted server (we call them “nodes”) Each cluster is managed by a Fabric Controller (FC) FC is responsible for: Blade provisioning Blade management Service deployment and lifecycle Datacenter network FC FC FC Cluster 1 Cluster 2 … Cluster n
  • 25. Inside a Cluster FC is a distributed, stateful application running on nodes (servers) spread across fault domains Top blades are reserved for FC Installed by “Utility Fabric Controller” One FC instance is 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 TOR TOR TOR TOR AGG LB LB LB LB LB FC3 FC1 FC2 FC4 FC5 FC3 … … … … … … … … … … Nodes Rack
  • 26. The Fabric Controller (FC) X 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 Server Kernel Process Datacenter Fabric Controller Service Word SQL Server Exchange Online SQL Azure Windows Kernel Fabric Controller Server Datacenter (DataCenter.xml)
  • 27. Cluster Resource Description The Fabric Controller is bootstrapped with a Utility Fabric Controller (UFC) Single-instance FC Used for bootstrap and FC updates UFC feeds FC a description of the cluster physical and logical resources in Datacenter.xml Server IP addresses Pool of network IP addresses to assign services Network hardware and Power Distribution Unit addresses
  • 28. Inside a Node Physical Node Guest Partition Guest Partition Guest Partition Role Instance Role Instance Role Instance Trust boundary Guest Agent Guest Agent Guest Agent Host Partition Image Repository (OS VHDs, role ZIP files) FC Host Agent Fabric Controller (Primary) Fabric Controller (Replica) Fabric Controller (Replica) …
  • 29. Fabric Viewer Used by Windows Azure Operation Team to view the fabric inside the datacenter racks clusters
  • 31. Deploying a Service to the Cloud:The 10,000 foot view Service Service package uploaded to portal Windows Azure Portal Service passes service package to “Red Dog Front End” (RDFE) Azure service RDFE converts service package to native “RD” version RDFE sends service to Fabric Controller (FC) based on target region FC stores image in repository and deploys and activates service Portal Service RDFE Service US-North Central Datacenter FC
  • 32. Deploying a Service to the Cloud: a DEEP Look
  • 33. Service Allocation and Service Healing
  • 34. Service Resource Allocation Goal: allocate service components to available resources while satisfying all hard constraints HW requirements: CPU, Memory, Storage, Network Fault domains Secondary goal: Satisfy soft constraints Prefer allocations which will simplify servicing the host OS/hypervisor Optimize network proximity: pack nodes Service allocation produces the goal state for the resources assigned to the service components Node and VM configuration (OS, hosting environment) Images and configuration files to deploy Processes to start Assign and configure network resources such as LB and VIPs
  • 35. Service Allocation Example Role B Count: 2 Update Domains: 2 Size: Medium Role A Count: 3 Update Domains: 3 Size: Large www.mycloudapp.net www.mycloudapp.net Load Balancer 10.100.0.185 10.100.0.36 10.100.0.122 Fault Domain 1 Fault Domain 2 Fault Domain 3
  • 36. Node and Role Health Maintenance FC maintains service availability by monitoring the software and hardware health Based primarily on heartbeats Automatically “heals” affected roles
  • 37. Service Healing Role B Worker Role Count: 2 Update Domains: 2 Size: Medium Role A – V2 VM Role (Front End) Count: 3 Update Domains: 3 Size: Large www.mycloudapp.net www.mycloudapp.net Load Balancer 10.100.0.185 10.100.0.191 10.100.0.36 10.100.0.122 Fault Domain 1 Fault Domain 2 Fault Domain 3
  • 39. Windows Azure VM Sizes Each Windows Azure compute instance represents a virtual server. Although many resources are dedicated to a particular instance, some resources associated to I/O performance (network bandwidth and disk subsystem), are shared among the compute instances on the same physical host. The different instance types will provide different minimum performance from the shared resources depending on their size.
  • 40. Local Drives OS Volume C: = Resource local drive (transient storage for VM) D: = OS drive E: = Application’s code (size of the package) Resource Volume Role Volume Guest Agent Role Host Role Entry Point
  • 41. Runtime installed .NET 3.5 SP1 .NET 4 (RTM) VC80 CRT (8.0.50727) VC90 CRT (9.0.30729) URL Rewrite Module 2.0 VC10 CRT (e.g. MSVCR100.DLL) is not fusion-ized and can be packaged together with the application Others? Java runtime (planned in future) PHP PHP SDK for Windows Azure (“Web Platform Installer”) Else? Start-up Task is your friend 
  • 42. OS version Two OS currently managed by Windows Azure Guest OS 1.x: WS08 64-bit compatible Guest OS 2.x: WS08 R2 64-bit compatible Windows Azure Guest OS Releases and SDK Compatibility Matrix http://msdn.microsoft.com/en-us/library/ee924680.aspx
  • 46. Conclusion The Cloud enables pay-as-you-go self-service provisioning of application resources Platform as a Service is all about reducing management and operations overhead The Windows Azure Fabric Controller is the foundation for Windows Azure’s PaaS Provisions machines Deploys services Configures hardware for services Monitors service and hardware health The Fabric Controller continues to evolve and improve VM in Windows Azure are provisioned VM that’s optimally configured running on Windows Azure Hypervisor
  • 47. References Inside Windows Azure http://channel9.msdn.com/Events/PDC/PDC10/CS08 Inside Windows Azure Virtual Machines http://channel9.msdn.com/Events/PDC/PDC10/CS63 Inside Windows Azure: The Cloud Operating Systems http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-853T Inside The Web and Worker Role VMs http://blogs.msdn.com/b/jimoneil/archive/2011/01/03/azure-home-part-14-inside-the-webrole-and-workerrole-vms.aspx Windows Azure Role Architecture http://blogs.msdn.com/b/kwill/archive/2011/05/05/windows-azure-role-architecture.aspx
  • 48. Questions? Wely Lau (wely@ncs.com.sg) Microsoft MVP, Windows Azure Solutions Architect, NCS Pte Ltd Blog : http://wely-lau.net

Notes de l'éditeur

  1. Sketch Homogenous
  2. Customerupload service package through portal => RDFE (includes billing and subscription) A. FFE translate service package into fabric commands (.WAZ) understood by FC2. FFE find correct machine pool (affinity group, geo location) and communicate FC B. FC responsible to maintain and monitor HW resource.3. FC finds a host server (node) that satisfy service package. Service package is copied and deployed to the host node. C. Host Agent lives inside Host OS, responsible to setup Guest OS and communication with WaAppAgent with heartbeat. - where the Hypervisor sits - Host OS also contains set of different type of VM images - Configure IP Address and Virtual IP - Define Load Balancer4. Host agent will restart the guest OS if heartbeat is not received for 10 mins. D. WaAppAgent: - configure OS firewall, local storage resource, svc pkg and config - communicate role status to the host OS5. Copy XML config to C:\\config and start WaHostBootstrapper process E. WaHostBootStrapper: reading role config, monitor child process6. For FullIISWebRole: start IISConfigurator F. IIS Configurator: - starting IIS, configuring rewrite module, set up App Pool, copy and start your website7. WaHostBootStartpper read from E:\\RoleModel.xml and begin to execute Startup Task9. WaHostBootStrapper start host proc depend on role type: I. Worker Role: WaWorkerHost will be started - executing Run method() K. WaIISHost: (full IIS): execute OnStart, Run, OnStop L. W3WP: run the appPool that’s configured by IISConfigurator.