47
Windows Azure 101 C# Corner Kolkata presents

Azure webinar kolkata

Embed Size (px)

Citation preview

Windows Azure 101

C# Corner Kolkata presents

Who am I?

Nitesh Luharuka Kolkata,IN //Website/Blog Goes here// MVP and Lead at C# Corner Focus on web

//Contact//

First of all...

Introduction to C# corner Kolkata Chapter and Leader

//Chapter Description Goes here//

Who am I?

Sumantro Kolkata,In C# Corner Kolkata [Chapter

Executive] Microsoft Specialist

C#,HTML5,CSS3,JS eloquentlyfoss3d.blogspot.com [email protected]

Agenda

Windows Azure 101 The Fabric Controller Deploying a service Updating a service Host OS upgrades

Windows Azure 101A quick introduction

Cloud

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

*aaS

= Managed for You

StandaloneServers

IaaS PaaS SaaS

Applications

Runtimes

Database

Operating System

Virtualization

Server

Storage

Networking

Windows Azure

Standardization & EfficiencyCustomization & Control

“Windows” Azure?

Stuff which is also offered

by your Operating System.

Windows Azure is an Operating System- just at a larger scale...

Windows Azure!

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

Core platform features

Automated OS updates & patches Automated application updates Automated configuration changes Designed to scale out

Some consequences...

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)

Come see my next session

A typical Windows Azure app

Application consists of Actual application in one or multiple

roles▪ Role = isolation boundary (~= DLL)

Service model▪ ITPro-as-an-XML

Configuration

ServiceDefinition.csdef

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

ServiceConfiguration.cscfg Contains

# instances Configuration values Certificates …

Can be changed at runtime

Front-End-2

Middle Tier-

2

Front-End-1

Middle Tier-

1

Update Domains

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

Fault Domains Similar to upgrade

domains “Unit of failure” Considered by WA

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

YourService

LB

LB

DNS

High-level: deploying a service

FabricController

Web Portal(API)

Model

DNSconfig

ServiceServiceService

The Fabric ControllerWindows Azure’s kernel

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

Windows Kernel

Server

WordSQL

Server

Fabric Controller

Datacenter

Your App #1

Your App #2

Datacenter architecture

TOR

LB LBAgg

PDU

LB LBAgg

LB LBAgg

LB LBAgg

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 RackSwitches

Power Distribution

Units

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

Nodes

High-Level FC Architecture 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

TOR

FC1

… …

TOR

FC2

… …

TOR

FC3

… …

FC3

TOR

FC4

… …

TOR

FC5

… …

LB

LB

AGG

LBL

BLB

Nodes

Rack

Node

Windows Azure

OS

FC Host Agen

t

Windows Azure Hypervisor

Provisioning a Node

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 ControllerRole

Images

RoleImage

s

RoleImage

s

RoleImage

s

Image Repository

Maintenance OS

Parent OS

Maintenance OS

PXEServer

Windows Azure

OS

Inside a Node

Fabric Controller (Primary)

FC Host Agent(trusted)

Host Partition

Guest Partitio

n

Guest Agent

Guest Partitio

n

Guest Agent

Guest Partitio

n

Guest Agent

Guest Partitio

n

Guest Agent

Physical Node

Fabric Controller (Replica)

Fabric Controller (Replica)…

Role Instance

Role Instance

Role Instance

Role Instance

Trust boundary

27

Deploying a serviceWhat happens when I click “Upload”?

Service Deployment Steps Process service model files

Determine resource requirements Create role images

Allocate compute and network resources Prepare nodes

Place role images on nodes Create & start VM

Configure networking Dynamic IP addresses (DIPs) assigned to blades Virtual IP addresses (VIPs) + ports allocated Programs load balancers to allow traffic

Service Resource Allocation 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

Example Role BCount: 2Update

Domains: 2Fault Domains:

2Size: Medium

Role ACount: 3 Update

Domains: 3Fault Domains:

3Size: Large

Fault Domain 1Fault Domain 2Fault Domain 3

LB

10.100.0.36

10.100.0.122

10.100.0.185

my.cloudapp.net

Provisioning a Role Instance FC pushes role files & configuration to

host agent Host agent creates three VHDs:

Differencing VHD for OS image (D:\)▪ Host agent injects FC guest agent into VHD for

Web/Worker roles Resource VHD for temporary files (C:\) Role VHD for role files (first available drive

letter e.g. E:\, F:\) Host agent creates VM, attaches VHDs,

and starts VM

Provisioning a Role Instance

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...

Updating a serviceWhat happens when I click “Upgrade”?

VIP Swap Upgrades

Swap Virtual 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

Stage

Prod

VIP SwapDeployment

Web Role

VM

Worker Role

VM

VM

VM

Deployment

Web Role

VM

Worker Role

VM

VM

VM

In-Place Upgrades

“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

Michael S. Collier
Change from "Update" to "Upgrade".

In Place Upgrade

Load Balancer

Prod

Rack

Web Role

VM

VM

Worker RoleVM

VM

Rack

Web Role

VM

VM

Worker RoleVM

VM

#1

#2

#1

#2

Host OS updatesWhat happens on “patch Tuesday”?

Updating the Host OS

Initiated by the Windows Azure team Goal: update all machines ASAP not violating

SLA Your role instance keeps the same VM and

VHDs, 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

HealthWhat happens when nothing happens?

Load Balancer

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();     }}

Node Health Index

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

NodeHealthIndex

MissedHeartbeats

Heartbeat Interval

MissedHeartbeat

RecoveryInitiated

Heartbeat Timeout

HealthTimeout

Healthy

The cascade

Application

VM level

Host level

Datacenter level

Fabric Controlle

r

Host Agent

Guest Agent

Your applicati

on

Load Balancer

Moving a Role Instance (Healing)

Similar to a service update Source node:

Role instances stopped VMs stopped Node reprovisioned

Destination node: Same steps as initial role instance

deployment Warning: Resource VHD is not moved

(that’s why you should consider it volatile)

TakewaysWhat to remember?

Takeaways

Windows Azure & PaaS The Fabric Controller Deploying a service Updating a service Host OS upgrades Health

THANK YOU

Maarten Balliauw

http://about.me/maartenballiauw

http://blog.maartenballiauw.be

@maartenballiauw