SlideShare uma empresa Scribd logo
1 de 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 

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
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
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
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
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

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

Notas do Editor

  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.