C# Corner Kolkata presents
 Nitesh Luharuka
 Kolkata,IN
 //Website/Blog Goes here//
 MVP and Lead at C# Corner
 Focus on web
 …
 //Contact//
 Introduction to C# corner Kolkata Chapter
and Leader
 //Chapter Description Goes here//
 Sumantro
 Kolkata,In
 C# Corner Kolkata [Chapter Executive]
 Microsoft SpecialistC#,HTML5,CSS3,JS
 eloquentlyfoss3d.blogspot.com
 Saggy.zone@gmail.com
 Windows Azure 101
 The Fabric Controller
 Deploying a service
 Updating a service
 Host OS upgrades
A quick introduction
 Consumer view:
 On-demand
 Self-service
 Pay-for-use
 Scalable
 + Service provider
view:
 Multi-tenant
 Cost-effective
 What you get?
 Anything the service
provider has to offer!
▪ Compute
▪ Storage
▪ CDN
▪ Integration
▪ VPN
▪ ...
 Resources
= Managed forYou Standalone
Servers
IaaS PaaS SaaS
Applications
Runtimes
Database
Operating System
Virtualization
Server
Storage
Networking
Windows Azure
Standardization & Efficiency
Customization & Control
 Windows Azure is an OS for the data center
 Takes care of the machine = data center
 You concentrate on business logic
▪ Not on fail-over clustering, provisioning, load balancing, ...
 Provides shared pool of compute, disk and
network
 Illusion of unlimited capacity
 Provides building blocks for applications
 Automated OS updates & patches
 Automated application updates
 Automated configuration changes
 Designed to scale out
 You should
 Design for costs
 Design for scale out (instead of scale up)
 Design for failure
▪ Idempotent operations
▪ Short timeouts & retries
▪ Stateless (with state on durable storage)
 Application consists of
 Actual application in one or multiple roles
▪ Role = isolation boundary (~= DLL)
 Service model
▪ ITPro-as-an-XML
 Configuration
 Defines
 Which roles there are
 Role names & types
 VM size (x-small, small, medium, ...)
 Network endpoints required
 What configuration values to expect
 # update domains
 Can not be changed for a deployment
 Contains
 # instances
 Configuration values
 Certificates
 …
 Can be changed at runtime
Front-
End-2
Middle
Tier-2
Front-
End-1
Middle
Tier-1 Ensure service stays up
during updates
 Update domains =
percentage of service that
will be offline
 Default and max is 5
 Can be overridden
Front-
End-1
Front-
End-2
Update
Domain 1
Update
Domain 2
Middle
Tier-1
Middle
Tier-2
Middle
Tier-3
Update
Domain 3
Middle
Tier-3
 Similar to upgrade
domains
 “Unit of failure”
 Considered byWA when
provisioning
 >= 2 fault domains per
service
Front-
End-1
Fault
Domain 1
(eg 1 rack)
Fault
Domain 2
(eg 1 rack)
Front-
End-2
Middle
Tier-2
Middle
Tier-1
Fault
Domain 3
(eg 1 rack)
Middle
Tier-3
Your
Service
L
B
L
B
D
N
S
Fabric
Controller
Web Portal
(API)
Model
DNSconfig
ServiceServiceService
WindowsAzure’s kernel
 Windows Azure kernel
 Manages hardware &
services
 Uses description of
hardware & network
resources it will control
 Service model and
binaries for applications
 Responsibilities
 Resource allocation
 Resource provisioning
 Service lifecycle & health
management
Server Datacenter
TOR
LB LB
Agg
PDU
LB LB
Agg
LB LB
Agg
LB LB
Agg
Racks
Datacenter
Routers
Aggregation
Routers and
Load Balancers
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
…… …
Top of Rack
Switches
Power Distribution
Units
…
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
 Distributed application running
on nodes spread across fault domains
 Installed by “Utility” FC
 One primary FC
 Supports rolling upgrade
 If FC fails, your apps are
unaffected
Node
Windows
Azure
OS
FC
Host
Agent
Windows Azure Hypervisor
 Power on node
 Network (PXE) boot
of Maintenance OS (WinPE)
 Agent formats disk
& downloads Host OS
 Host OS boots,
runs Sysprep & reboots
 FC connects with
the Host Agent
Fabric Controller
Role
Images
Role
Images
Role
Images
Role
Images
Image Repository
Maintenanc
e OS
Parent
OS
Maintenance
OS
PXE
Server
Windows
Azure
OS
Fabric Controller
(Primary)
FC Host Agent
(trusted)
Host Partition
Guest
Partition
Guest
Agent
Guest
Partition
Guest
Agent
Guest
Partition
Guest
Agent
Guest
Partition
Guest
Agent
Physical Node
Fabric Controller
(Replica)
Fabric Controller
(Replica)
…
Role
Instance
Role
Instance
Role
Instance
Role
Instance
Trust boundary
27
What happens when I click “Upload”?
 Process service model files
 Determine resource requirements
 Create role images
 Allocate compute and network resources
 Prepare nodes
 Place role images on nodes
 Create & startVM
 Configure networking
 Dynamic IP addresses (DIPs) assigned to blades
 Virtual IP addresses (VIPs) + ports allocated
 Programs load balancers to allow traffic
 Goals:
 Allocate service components to available
resources
 Satisfy constraints (VM size, fault domains)
 Optionally: satisfy soft constraints
 Prefer simplified deployments
▪ Instances from same update domain on same host
 Optimize networking
▪ Put nodes closer together
Role B
Count: 2
Update Domains: 2
Fault Domains: 2
Size: Medium
Role A
Count: 3
Update Domains: 3
Fault Domains: 3
Size: Large
LB
my.cloudapp.net
 FC pushes role files & configuration to host
agent
 Host agent creates threeVHDs:
 DifferencingVHD for OS image (D:)
▪ Host agent injects FC guest agent intoVHD for Web/Worker
roles
 ResourceVHD for temporary files (C:)
 RoleVHD for role files (first available drive letter e.g.
E:, F:)
 Host agent createsVM, attachesVHDs, and
startsVM
 Guest agent starts role host & calls role entry
point
 Starts health heartbeat to and gets commands
from host agent
 Load balancer only routes to external
endpoint when it responds to simple HTTP
GET (LB probe)
DEMOLet’s get some evidence...
What happens when I click “Upgrade”?
 SwapVirtual IPs between the two slots
 Production becomes Staging
 Staging becomes Production
 Instances are not affected
 DNS and LB remains intact
 Happens very fast
 Can only use when the service model hasn’t
changed
Load Balancer:
Stage
Prod
Worker Role
VM
Worker Role
VM
VM
VM
 “Rolling upgrades”
 Difficult to do in traditional IT
 Leverages Upgrade Domains
 Service model must be identical
 No new roles, no changes in .csdef, etc.
 For Each Upgrade Domain
 Stop instances
 Update
 Start instances
Load Balancer
Worker Role Worker Role
#1
#2
#1
#2
What happens on “patchTuesday”?
 Initiated by theWindows Azure team
 Goal: update all machines ASAP not violating SLA
 Your role instance keeps the sameVM andVHDs,
preserving cached data in the resource volume.
 Update domains are allocated to 1 host node
 Don’t make things confusing
 Allows rebooting a complete host without violating SLA
 Allows updating all hosts for UDx at once
What happens when nothing happens?
 LB “probes” guest agent every 15 seconds
 Miss 2 probes? LB stops forwarding traffic
 Role can report “busy” to guest agent
 Guest agent stops responding probes
public class WebRole : RoleEntryPoint {
public override bool OnStart() {
RoleEnvironment.StatusCheck += (sender, args) =>
{
if (DateTime.UtcNow.Second > 20)
args.SetBusy();
};
return base.OnStart();
}
}
 Based on heartbeats, typically 15
seconds
 Used for status and recovery
 Health state sampler resets the index on
successful poll
 Once index falls below zero, FC attempts
to heal node
 Host agent timeout is 10 minutes
 Worst-case reaction time is timeout
interval + heartbeat interval
Missed
Heartbeat
Recovery
Initiated
Application
VM level
Host level
Datacenter
level
Fabric
Controller
Host Agent
Guest
Agent
Your
application
Load
Balancer
 Similar to a service update
 Source node:
 Role instances stopped
 VMs stopped
 Node reprovisioned
 Destination node:
 Same steps as initial role instance deployment
 Warning: ResourceVHD is not moved
 (that’s why you should consider it volatile)
What to remember?
 Windows Azure & PaaS
 The Fabric Controller
 Deploying a service
 Updating a service
 Host OS upgrades
 Health
Azure webinar kolkata

Azure webinar kolkata

  • 1.
  • 2.
     Nitesh Luharuka Kolkata,IN  //Website/Blog Goes here//  MVP and Lead at C# Corner  Focus on web  …  //Contact//
  • 3.
     Introduction toC# corner Kolkata Chapter and Leader  //Chapter Description Goes here//
  • 4.
     Sumantro  Kolkata,In C# Corner Kolkata [Chapter Executive]  Microsoft SpecialistC#,HTML5,CSS3,JS  eloquentlyfoss3d.blogspot.com  Saggy.zone@gmail.com
  • 5.
     Windows Azure101  The Fabric Controller  Deploying a service  Updating a service  Host OS upgrades
  • 6.
  • 7.
     Consumer view: On-demand  Self-service  Pay-for-use  Scalable  + Service provider view:  Multi-tenant  Cost-effective  What you get?  Anything the service provider has to offer! ▪ Compute ▪ Storage ▪ CDN ▪ Integration ▪ VPN ▪ ...  Resources
  • 8.
    = Managed forYouStandalone Servers IaaS PaaS SaaS Applications Runtimes Database Operating System Virtualization Server Storage Networking Windows Azure Standardization & Efficiency Customization & Control
  • 10.
     Windows Azureis an OS for the data center  Takes care of the machine = data center  You concentrate on business logic ▪ Not on fail-over clustering, provisioning, load balancing, ...  Provides shared pool of compute, disk and network  Illusion of unlimited capacity  Provides building blocks for applications
  • 11.
     Automated OSupdates & patches  Automated application updates  Automated configuration changes  Designed to scale out
  • 12.
     You should Design for costs  Design for scale out (instead of scale up)  Design for failure ▪ Idempotent operations ▪ Short timeouts & retries ▪ Stateless (with state on durable storage)
  • 13.
     Application consistsof  Actual application in one or multiple roles ▪ Role = isolation boundary (~= DLL)  Service model ▪ ITPro-as-an-XML  Configuration
  • 14.
     Defines  Whichroles there are  Role names & types  VM size (x-small, small, medium, ...)  Network endpoints required  What configuration values to expect  # update domains  Can not be changed for a deployment
  • 15.
     Contains  #instances  Configuration values  Certificates  …  Can be changed at runtime
  • 16.
    Front- End-2 Middle Tier-2 Front- End-1 Middle Tier-1 Ensure servicestays up during updates  Update domains = percentage of service that will be offline  Default and max is 5  Can be overridden Front- End-1 Front- End-2 Update Domain 1 Update Domain 2 Middle Tier-1 Middle Tier-2 Middle Tier-3 Update Domain 3 Middle Tier-3
  • 17.
     Similar toupgrade domains  “Unit of failure”  Considered byWA when provisioning  >= 2 fault domains per service Front- End-1 Fault Domain 1 (eg 1 rack) Fault Domain 2 (eg 1 rack) Front- End-2 Middle Tier-2 Middle Tier-1 Fault Domain 3 (eg 1 rack) Middle Tier-3
  • 18.
  • 19.
  • 20.
     Windows Azurekernel  Manages hardware & services  Uses description of hardware & network resources it will control  Service model and binaries for applications  Responsibilities  Resource allocation  Resource provisioning  Service lifecycle & health management Server Datacenter
  • 21.
    TOR LB LB Agg PDU LB LB Agg LBLB Agg LB LB Agg Racks Datacenter Routers Aggregation Routers and Load Balancers TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU TOR PDU …… … Top of Rack Switches Power Distribution Units … Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes
  • 23.
     Distributed applicationrunning on nodes spread across fault domains  Installed by “Utility” FC  One primary FC  Supports rolling upgrade  If FC fails, your apps are unaffected
  • 24.
    Node Windows Azure OS FC Host Agent Windows Azure Hypervisor Power on node  Network (PXE) boot of Maintenance OS (WinPE)  Agent formats disk & downloads Host OS  Host OS boots, runs Sysprep & reboots  FC connects with the Host Agent Fabric Controller Role Images Role Images Role Images Role Images Image Repository Maintenanc e OS Parent OS Maintenance OS PXE Server Windows Azure OS
  • 25.
    Fabric Controller (Primary) FC HostAgent (trusted) Host Partition Guest Partition Guest Agent Guest Partition Guest Agent Guest Partition Guest Agent Guest Partition Guest Agent Physical Node Fabric Controller (Replica) Fabric Controller (Replica) … Role Instance Role Instance Role Instance Role Instance Trust boundary 27
  • 26.
    What happens whenI click “Upload”?
  • 27.
     Process servicemodel files  Determine resource requirements  Create role images  Allocate compute and network resources  Prepare nodes  Place role images on nodes  Create & startVM  Configure networking  Dynamic IP addresses (DIPs) assigned to blades  Virtual IP addresses (VIPs) + ports allocated  Programs load balancers to allow traffic
  • 28.
     Goals:  Allocateservice components to available resources  Satisfy constraints (VM size, fault domains)  Optionally: satisfy soft constraints  Prefer simplified deployments ▪ Instances from same update domain on same host  Optimize networking ▪ Put nodes closer together
  • 29.
    Role B Count: 2 UpdateDomains: 2 Fault Domains: 2 Size: Medium Role A Count: 3 Update Domains: 3 Fault Domains: 3 Size: Large LB my.cloudapp.net
  • 30.
     FC pushesrole files & configuration to host agent  Host agent creates threeVHDs:  DifferencingVHD for OS image (D:) ▪ Host agent injects FC guest agent intoVHD for Web/Worker roles  ResourceVHD for temporary files (C:)  RoleVHD for role files (first available drive letter e.g. E:, F:)  Host agent createsVM, attachesVHDs, and startsVM
  • 31.
     Guest agentstarts role host & calls role entry point  Starts health heartbeat to and gets commands from host agent  Load balancer only routes to external endpoint when it responds to simple HTTP GET (LB probe)
  • 32.
  • 33.
    What happens whenI click “Upgrade”?
  • 34.
     SwapVirtual IPsbetween the two slots  Production becomes Staging  Staging becomes Production  Instances are not affected  DNS and LB remains intact  Happens very fast  Can only use when the service model hasn’t changed
  • 35.
  • 36.
     “Rolling upgrades” Difficult to do in traditional IT  Leverages Upgrade Domains  Service model must be identical  No new roles, no changes in .csdef, etc.  For Each Upgrade Domain  Stop instances  Update  Start instances
  • 37.
    Load Balancer Worker RoleWorker Role #1 #2 #1 #2
  • 38.
    What happens on“patchTuesday”?
  • 39.
     Initiated bytheWindows Azure team  Goal: update all machines ASAP not violating SLA  Your role instance keeps the sameVM andVHDs, preserving cached data in the resource volume.  Update domains are allocated to 1 host node  Don’t make things confusing  Allows rebooting a complete host without violating SLA  Allows updating all hosts for UDx at once
  • 40.
    What happens whennothing happens?
  • 41.
     LB “probes”guest agent every 15 seconds  Miss 2 probes? LB stops forwarding traffic  Role can report “busy” to guest agent  Guest agent stops responding probes public class WebRole : RoleEntryPoint { public override bool OnStart() { RoleEnvironment.StatusCheck += (sender, args) => { if (DateTime.UtcNow.Second > 20) args.SetBusy(); }; return base.OnStart(); } }
  • 42.
     Based onheartbeats, typically 15 seconds  Used for status and recovery  Health state sampler resets the index on successful poll  Once index falls below zero, FC attempts to heal node  Host agent timeout is 10 minutes  Worst-case reaction time is timeout interval + heartbeat interval Missed Heartbeat Recovery Initiated
  • 43.
    Application VM level Host level Datacenter level Fabric Controller HostAgent Guest Agent Your application Load Balancer
  • 44.
     Similar toa service update  Source node:  Role instances stopped  VMs stopped  Node reprovisioned  Destination node:  Same steps as initial role instance deployment  Warning: ResourceVHD is not moved  (that’s why you should consider it volatile)
  • 45.
  • 46.
     Windows Azure& PaaS  The Fabric Controller  Deploying a service  Updating a service  Host OS upgrades  Health

Editor's Notes

  • #12 Idempotent operations (more than once)
  • #14 Idempotent operations (more than once)
  • #23 40 blades in a rack Top router is SPOF Top switch is SPOF Fault-domain: rack!
  • #36 Demo: RDP into instance Show drives available (C:\, D:\ and E:\) Have a look at C:\Config Have a look at the batch files on D:\