windows azure role cloud computing soup to nuts

45
Windows Azure Role Cloud Computing Soup to Nuts Mike Benkovich Microsoft Corporation www.benkoTips.com - @mbenko btlod-71

Upload: erica

Post on 25-Feb-2016

52 views

Category:

Documents


0 download

DESCRIPTION

Windows Azure Role Cloud Computing Soup to Nuts. Mike Benkovich Microsoft Corporation www.benkoTips.com - @ mbenko. btlod-71. Session Objectives and Takeaways. Describe Windows Azure Compute Understand Model and Terminology Understand role customization, scalability and upgrade. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows Azure Role Cloud Computing Soup to Nuts

Windows Azure RoleCloud Computing Soup to Nuts

Mike BenkovichMicrosoft Corporationwww.benkoTips.com - @mbenko

btlod-71

Page 2: Windows Azure Role Cloud Computing Soup to Nuts

Session Objectives and Takeaways

Describe Windows Azure ComputeUnderstand Model and TerminologyUnderstand role customization, scalability and upgrade

Page 3: Windows Azure Role Cloud Computing Soup to Nuts

Windows AzureWindows Azure is Microsoft’s Cloud Platform for

Developers

Operating System for the CloudRuns applications in the cloudProvides StorageApplication Management

Windows Azure ideal for applications needing:ScalabilityAvailabilityFault ToleranceOn-Demand ComputingPerformance

Page 4: Windows Azure Role Cloud Computing Soup to Nuts

Core Services

Caching CDN

Service Bus Reporting

Data Sync Azure Connect

Identity HPC

Additional Services

Windows Azure

Compute Storage Database

Page 5: Windows Azure Role Cloud Computing Soup to Nuts

Microsoft Confidential

Front-End

Mark’s Cloud Application

Front-EndMiddle-

TierMiddle-TierMiddle-

Tier

HTTP/HTTPS WindowsAzure

Storage,SQL Azure

Load Balancer

Service Model Whiteboard

Page 6: Windows Azure Role Cloud Computing Soup to Nuts

demo

Page 7: Windows Azure Role Cloud Computing Soup to Nuts

Microsoft Confidential

Service Definition• Definition:

• Role name• Role type• VM size (e.g. small, medium...)• Network endpoints

• Code: • Web/Worker Role: Hosted DLL

and other executables• VM Role: VHD

• Configuration:• Number of instances• Number of update and fault

domains

Mike’s Service

ConfigurationInstances: 2Update Domains: 2Fault Domains: 2

Role: Front-End

DefinitionType: WebVM Size: SmallEndpoints: External-1

ConfigurationInstances: 3Update Domains: 2Fault Domains: 2

Role: Middle-Tier

DefinitionType: WorkerVM Size: LargeEndpoints: Internal-1

Page 8: Windows Azure Role Cloud Computing Soup to Nuts

The Fabric Controller (FC)

• The “kernel” of the cloud operating system• Manages datacenter hardware• Manages Windows Azure services

• Four main responsibilities:• Datacenter resource allocation• Datacenter resource

provisioning• Service lifecycle management• Service health management

• Inputs:• Description of the hardware and network resources it will

control• Service model and binaries for cloud applications

ServerKernelProcess

DatacenterFabric ControllerService

Windows Kernel

Server

WordSQL

Server

Fabric Controller

Datacenter

Exchange

OnlineSQL

Azure

Page 9: Windows Azure Role Cloud Computing Soup to Nuts

Example Service Allocation Role B

Count: 2Update

Domains: 2Fault Domains:

2Size: Medium

Role ACount: 3Update

Domains: 2Fault Domains:

2Size: Large

Fault Domain 1Fault Domain 2Fault Domain 3

LoadBalance

r

www.mycloudapp.net

www.mycloudapp.net

10.100.0.3610.100.0.122

10.100.0.185

Page 10: Windows Azure Role Cloud Computing Soup to Nuts

Microsoft Confidential

Some terminology…+ Subscription - unit of billing, associated with Live ID

+ Hosted Service - dns name reservation- Certificates - used for deployment+ Deployments - 2 slots, Production & Staging

+ Roles - defines types of instances to be created

Instances - has a size and an instance count

Page 11: Windows Azure Role Cloud Computing Soup to Nuts

VM Size in Windows AzureWindows AzureSupports Various VM SizesSize set on Role in Service Definition - All instances of role will be of equal size Service can have multiple rolesBalance of Performance per node vs. High Availability from multiple nodes

Extra Small Shared 768M 20GB .04Small 1 1.7GB 250GB .12Medium 2 3.5GB 500GB .24Large 4 7GB 1000GB .48Extra large 8 15GB 2000GB .96

Page 12: Windows Azure Role Cloud Computing Soup to Nuts

What is Windows Azure Compute?

Virtual Machines in the CloudThree Flavors:

Web Role Worker Role

VM Role

Page 13: Windows Azure Role Cloud Computing Soup to Nuts

Web Role

Webforms or MVCFastCGI applications (e.g. PHP)Multiple Websites

Can optionally implement RoleEntryPoint

Page 14: Windows Azure Role Cloud Computing Soup to Nuts

Worker Role

Poll and Pop Messages within while(true) loopE.g. Map/Reduce pattern, background image processing

Create TcpListener or WCF Service HostE.g. Run a .NET SMTP server or WCF Service

OnStart or Run method executes Process.Start()Startup Task installs or executes background/foreground processCustom Role Entry Point (executable or .Net assembly)E.g. Run a database server, web server, distributed cache

Page 15: Windows Azure Role Cloud Computing Soup to Nuts

Windows Azure Service Architecture

Windows Azure Data Center

Storage

Page 16: Windows Azure Role Cloud Computing Soup to Nuts

What Can It Run?

Page 17: Windows Azure Role Cloud Computing Soup to Nuts

Supplies Runtime Values (Scale, Config Settings, Certificates to use, VHD, etc.)

Can be updated any time through Portal or API

Page 18: Windows Azure Role Cloud Computing Soup to Nuts

<?xml version="1.0"?><ServiceConfiguration serviceName="WebDeploy" xmlns="http://schemas.microsoft.com/serviceHosting/2008/10ServiceConfiguration"> <Role name="Webux">

<Instances count="1"/><ConfigurationSettings>

<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true/><Setting name="Microsoft.WindowsAzure.plugins.RemoteAccess.Enabled" value="True"/><Setting name="Microsoft.WindowsAzure.plugins.RemoteAccess.AccountUsername" value="dunnry"/><Setting name="Microsoft.WindowsAzure.plugins.RemoteAccess.AccountEncryptedPassword" value="MIIBrAYJKoZIhvcNAQcDoIIB"/><Setting name="Microsoft.WindowsAzure.plugins.RemoteAccess.AccountExpiration" value="2010-12-23T23:59:59.0000000-07"/><Setting name="Microsoft.Windows Azure.Plugins.RemoteForwarder.Enabled" value="True"/>

<ConfigurationSettings><Certificate>

<Certificates name="Microsoft.WindowsAzure.Plugins.remoteAccess.PasswordEncryption" thumbprint="D6BE55AC439FAC6CBEBAF"/>

</Certificate></Role>

</ServiceConfiguration>

Page 19: Windows Azure Role Cloud Computing Soup to Nuts

Describes the shape of your Windows Azure ServiceDefines Roles, Ports, Certificates, Configuration Settings, Startup Tasks, IIS Configuration, and more…

Can only be changed by upgrades or new deployments

Page 20: Windows Azure Role Cloud Computing Soup to Nuts

<?xml version="1.0" encoding="utf-8"?><ServiceDefinition name="WebDeploy" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">

<WebRole name="WebUX"><Startup>

<Task commandLine="..\Startup\EnableWebAdmin.cmd" executionContext="elevated" taskType="simple" />

</Startup><Imports>

<Import moduleName="RemoteAccess" /><Import moduleName="RemoteForwarder"/>

</Imports><Sites>

<Site name="Web"><Bindings> <Binding name="HttpIn" endpointName="HttpIn"/></Bindings>

</Site></Sites><Endpoints>

<InputEndpoint name="HttpIn" protocol="http" port="80"/><InputEndpoint name="mgmtsvc" protocol="tcp" port="8172" localPort="8712"/>

</Endpoints>

Page 21: Windows Azure Role Cloud Computing Soup to Nuts

Startup TasksRuns before RoleEntryPoint OnStart()Can run as elevated or standard user

ImportsPackage up startup commands into a

reusable format

Stored in the sdk installation directory

Real World Windows Azure Guidance - Corey Fowler @SyntaxC4http://msdn.microsoft.com/en-us/library/windowsazure/hh127476.aspx

Page 22: Windows Azure Role Cloud Computing Soup to Nuts

Inherits RoleEntryPointOnStart() Method

Run() Method

OnStop() Method

Role Programming Model

Page 23: Windows Azure Role Cloud Computing Soup to Nuts

Role LifecycleAll roles may extend RoleEntryPointRoles report status via RoleEnvironment

StatusCheck

StatusCheck

StatusCheckStopping

METHODS EVENTS STATUS

Page 24: Windows Azure Role Cloud Computing Soup to Nuts

Run any executable in your roleNot just limited to .Net codeRun custom processes without codeRole automatically restarts if process stops

Page 25: Windows Azure Role Cloud Computing Soup to Nuts

<?xml version="1.0" encoding="utf-8"?><ServiceDefinition name="WindowsAzureProject11" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"><WorkerRole name="WorkerRole1" vmsize="Small">

<Runtime executionContext="limited"><EntryPoint>

<ProgramEntryPoint commandLine="myProcess.exe" setReadyOnProcessStart="true" />

</EntryPoint></Runtime><Endpoints><InputEndpoint name="Endpoint1" protocol="tcp" port="80" />

</Endpoints></WorkerRole>

</ServiceDefinition>

Page 26: Windows Azure Role Cloud Computing Soup to Nuts

Networking in Windows Azure

Input (VIP) Internal Windows Azure Connect

3 types of Endpoints in Windows Azure

Specify Connectivity Rules in Service DefinitionNetworkTrafficRules

Port RangesLocal PortsTCP only

Page 27: Windows Azure Role Cloud Computing Soup to Nuts

Local StorageRole instances have available disk storageUse LocalStorage element in service definitionNameCleanOnRoleRecycleSize

Persistent but not guaranteed durableGood for cached resources or temporary files

Windows Azure Storage Drives provide guaranteed durable storage

Page 28: Windows Azure Role Cloud Computing Soup to Nuts

Local Storage

<LocalResources><LocalStoragename="myLocalDisk" sizeInMB="10" cleanOnRoleRecycle="false" />

</LocalResources>

string rootPath = RoleEnvironment.GetLocalResource["myLocalDisk"].RootPath;DirectoryInfo di = new DirectoryInfo(rootPath);foreach(di.EnumerateFiles()) ….

Page 29: Windows Azure Role Cloud Computing Soup to Nuts

demo

Page 30: Windows Azure Role Cloud Computing Soup to Nuts

More small instances == more redundancy

Some scenarios will benefit from more coresWhere moving data >$ parallel overheadE.g. Video processing, Stateful services (DBMS)

Choosing Your VM Size

Don’t just throw big VMs at every problem

Scale out architectures have natural parallelism

Test various configurations under load

Page 31: Windows Azure Role Cloud Computing Soup to Nuts

Scaling and Upgrading• Scaling options

• Management portal config changes• PowerShell• Custom Code

• Upgrades• VIP Swap• Rolling Upgrades

Page 32: Windows Azure Role Cloud Computing Soup to Nuts

Configuration ValuesStore arbitrary configuration string valuesDefine in modelPopulate in configuration

RoleEnvironment.GetConfigurationSettingValue()

Don’t use web.config for values you wish

to change at runtimeApp/Web.config is packaged with deployment change requires re-deploy*.cscfg supports change tracking and notification to running role instances

Page 33: Windows Azure Role Cloud Computing Soup to Nuts

Handling Config ChangesRoleEnvironment.ChangingOccurs before configuration is changedCan be cancelled – causes a recycle

RoleEnvironment.ChangedOccurs after config change has been applied

RoleEnvironmentConfigurationSettingChangeProvides config value that was changed

RoleEnvironmentTopologyChange When role count is changed

Page 34: Windows Azure Role Cloud Computing Soup to Nuts

Handling Config ChangesPort 80Http

Port 8090HTTP

StatusSvc

HTTP83425

StatusSvc

HTTP73984Regular Polling for StatusRegular Polling for Status

Page 35: Windows Azure Role Cloud Computing Soup to Nuts

demo

Page 36: Windows Azure Role Cloud Computing Soup to Nuts

Fault Domains99.95% Uptime GuaranteeRequires 2 or more instance per role

Role instance are isolated by fault domainFault domains isolate VMsFault domains provide redundancyAt least two fault domains per role

Page 37: Windows Azure Role Cloud Computing Soup to Nuts

Upgrade Domains

Page 38: Windows Azure Role Cloud Computing Soup to Nuts

Roles and InstancesExample role with nine virtual machines distributed across three fault domains

ROLE

VM1 VM3

VM5 VM8

VM2 VM4

VM6 VM9

VM6 VM9

Page 39: Windows Azure Role Cloud Computing Soup to Nuts

The High Scale Application ArchetypeWindows Azure provides a ‘pay-as-you-go’ scale out application platform

Async Activation

Network Activation

Page 40: Windows Azure Role Cloud Computing Soup to Nuts

Upgrading Your ApplicationVIP Swap:Uses Staging and Production environmentsAllows to quickly swap environmentsProduction: v1 Staging: v2, after swap then Production: v2 Staging: v1

In-Place UpgradePerforms a rolling upgrade on live serviceEntire service or a single roleManual or Automatic across update domainsCannot change Service Model

Page 41: Windows Azure Role Cloud Computing Soup to Nuts

ROLE

VIP Swap

VM1 VM2

VM3 VM4

VM1 VM2

VM3 VM4

Page 42: Windows Azure Role Cloud Computing Soup to Nuts

demo

Page 43: Windows Azure Role Cloud Computing Soup to Nuts

SummaryService model defines service shapeService configuration defines service scaleSelectable VM SizesWindows Azure provides specific configuration capabilityScale out awareAllows event based change subscription

Upgrading and Deployment

Page 44: Windows Azure Role Cloud Computing Soup to Nuts

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 45: Windows Azure Role Cloud Computing Soup to Nuts

MonitoringMonitoring is not DebuggingInstrument your application using Trace, DebugDiagnosticMonitorTraceListener

Use Diagnostics API to Configure and CollectEvent LogsPerformance CountersTrace/Debug information (logging)IIS Logs, Failed Request LogsCrash Dumps or Arbitrary files

Request data on demand or scheduledTransferred into your table and/or blob storage