Barga Microsoft Thilina Gunarathne Indiana University Agenda Cloud Computing Fundamentals The Windows Azure Service Model Windows Azure Storage High Availability and Windows Azure Services ID: 672130
Download Presentation The PPT/PDF document "Windows Azure Cloud Roger" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Windows Azure Cloud
Roger
Barga
, Microsoft
Thilina
Gunarathne
, Indiana UniversitySlide2
Agenda
Cloud Computing Fundamentals
The
Windows Azure Service
Model
Windows Azure
Storage
High
Availability and Windows Azure ServicesSlide3
Cloud Computing FundamentalsSlide4
Time
Demand
What is a “Cloud”?
Cloud: on-demand, scalable, multi-tenant, self-service compute and storage resources
Time
Demand
Server Provisioning
Cloud Provisioning
Overprovisioned
UnderprovisionedSlide5
Cloud Terminology
Infrastructure as a Service (
IaaS
):
basic compute and storage resources
On-demand serversAmazon EC2, VMWare vCloudPlatform as a Service (PaaS): cloud application infrastructureOn-demand application-hosting environmentE.g. Google AppEngine, Salesforce.com, Windows AzureSoftware as a Service (SaaS): cloud applicationsOn-demand applicationsE.g. Office 365, GMail, Microsoft Office Web CompanionsSlide6
Cloud: Efficiency Versus Control
= Managed for You
Standalone
Servers
IaaS
PaaSSaaSApplicationsRuntimesDatabaseOperating SystemVirtualizationServerStorageNetworkingWindows Azure
EfficiencyControl+CostSlide7
Operating
System
Operating
System
VM
WebServerOperating SystemVMDBMS2) Choose image, then create and configure VM(s) for application1) Choose image, then create VM for DBMS and configure DBMSIaaSLibraryVM ImagesDeveloperApplication
DataLoad Balancer5) Configure loadbalancer
6) Manage VMs and DBMS (e.g., deploying new OS images in VMs)
3
) Provision database, then create tables
and add data
4) Install applicationSlide8
Operating
System
Operating
System
VM
Operating SystemVMDBMSPaaSDeveloperApplicationDataLoad Balancer2) Deploy applicationWebServer1) Provision database, then create tables and add dataSlide9
Windows Azure
Windows Azure is an OS for the data center
Handles resource management, provisioning, and monitoring
Manages application lifecycle
Allows developers to concentrate on business logic
Provides common building blocks for distributed applicationsReliable queuing, simple structured storage, SQL storageApplication services like access control, caching, and connectivitySlide10
Windows Azure Platform
Fabric Controller
Windows Azure Networking
AppFabric
Caching
AppFabric Access Control ServerSQL AzureAppFabric Service Bus“Red Dog” Front End (RDFE)WindowsAzureComputeWindowsAzureMiddleware ServicesWindows Azure ApplicationsWindows Azure StorageWindows Azure CDNWindowsAzureData ServicesSlide11
The Windows Azure Service ModelSlide12
Windows Azure Application Philosophy:
Design for Failure
Scale out for capacity
Scale out for redundancy
Asynchronous communication
Short time outs with retriesIdempotent operationsStateless with durable external storageSlide13
Windows Azure Application Characteristics
Single Instance
Persistent OS
Multi-Instance
Stateless
OSAutomated, Consistent Application UpdatesAutomated, Consistent Configuration ChangesMulti-Instance ManagementScale-outHigh AvailabilityAutomated, Consistent OS ServicingWindows AzureSingle InstancePersistent OSMulti-InstanceStateless OSAutomated, Consistent Application UpdatesAutomated, Consistent Configuration ChangesMulti-Instance ManagementScale-outHigh AvailabilityAutomated, Consistent OS ServicingWindows ServerSlide14
Let’s Make a Cloud Application!
Marketing wants to catch branding violations
Take as input an uploaded PowerPoint file and scan it for “branding violations” (use of “Azure” without “Windows” or “SQL” prefix)
Requirements:
High availability
IIS/MVC2 web siteScalable violation scanning workersSlide15
Multi-Tier Cloud Application
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 availabilityFront-EndCloud ApplicationFront-EndHTTP/HTTPSWindowsAzureStorage,SQL AzureLoad BalancerMiddle-TierSlide16
The Windows Azure Service Model
A Windows Azure application is called a “service”
Definition information
Configuration information
At least one “role”
Roles are like DLLs in the service “process”Collection of code with an entry point that runs in its own virtual machineWindows Azure compute SLA requires two instances of each role99.95% for connectivity to two instancesAchieved with update and fault domainsSlide17
Role Contents
Definition:
Role name
Role
type
VM size (e.g. small, medium, etc.)Network endpointsCode: Web/Worker Role: Hosted DLL and other executablesVM Role: VHDConfiguration:Number of instancesNumber of update and fault domainsCloud ServiceRole: Front-EndDefinitionType: WebVM Size: SmallEndpoints: External-1ConfigurationInstances: 2Update Domains: 2Fault Domains: 2Role: Middle-TierDefinitionType: WorkerVM Size: LargeEndpoints: Internal-1ConfigurationInstances: 3Update Domains: 2Fault Domains: 2Slide18
Role Types
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
VM Role: is it a VM?No, because it is statelessGood for:Long install (5+ minutes)Manual install/configFragile install/configSlide19
Service Model Files
Service definition is in
ServiceDefinition.csdef
Service configuration is in
ServiceConfiguration.cscfg
CSPack program Zips service binaries and definition into service package file (service.cscfg)Slide20
Windows Azure StorageSlide21
Branding Police Inter-Role Communication
We have several types of communication between roles:
PowerPoint file sent from Web Role to Worker Role
Branding violations returned from Worker Role to user
Requirements:
Communication must be asynchronousMust support concurrent violation scans for different usersFailure of any node must cause at worst a delayLet’s look at Windows Azure storage and communications support…WebRoleWorkerRoleSlide22
Windows Azure Storage Fundamentals
Storage characteristics
Durable – replicated three times
Scalable (capacity and throughput)
Highly available
Simple and familiar programming interfacesREST (HTTP and HTTPS).NET accessibleSlide23
Storage Objects
Blobs
Provide a simple interface for storing named files along with metadata for the file
Tables
Provide lightly structured storage with a set of entities that contain a set of propertiesQueues Provide reliable storage and delivery of messagesSlide24
Storage Account and Blob Containers
Storage account
An account can have many blob containers
Container
A container is a set of blobs
Sharing policies are set at the container level Public READ or PrivateAssociate metadata with containerMetadata is <name, value> pairsUp to 8KB per containerList the blobs in a containerSlide25
Blob Storage Concepts
Blob
Container
Account
sally
picturesIMG001.JPGIMG002.JPGmoviesMOV1.AVISlide26
Table Data Model
Table
A storage account can create many tables
.NET classes and LINQ
A table is a set of entities (rows)
An entity is a set of properties (columns)Billions of entities and TBs of dataTwo “key” properties that together are the unique ID of the entity in the tablePartitionKey – enables scalabilityRowKey – uniquely identifies the entity within the partitionSlide27
Table Storage Concepts
Entity
Table
Account
s
allyusersName =…Email = …Name =…Email = …photo indexPhoto ID =…Date =…Photo ID =…Date =…Slide28
Windows Azure Queues
Provide reliable message delivery
Simple, asynchronous work dispatch
Programming semantics ensure that a message can be processed at least once
Queues are highly available, durable and performance efficient
Maximum size is 64KFIFO in general, but not guaranteedPulling an item from the queue doesn’t delete itIt becomes invisible for a visibility timeoutItem must be deleted before timeout or else it becomes visibleSlide29
Queue Storage Concepts
Message
Queue
Account
s
allythumbnail jobs128x128, http://…256x256, http://…photo processing jobshttp://…http://…Slide30
Account
Container
Blobs
Table
Entities
QueueMessagesWindows Azure Data Storage Conceptshttp://<account>.blob.core.windows.net/<container>http://<account>.table.core.windows.net/<table>http://<account>.queue.core.windows.net/<queue>Slide31
Branding Police
Web
Role
Web
Role
WorkerRoleWorkerRole{…-…-...-…}-report.txt{…-…-...-…}{…-…-...-…}Working on…Violations:…brandingpolice.cloudapp.netSlide32
Updating Windows Azure ServicesSlide33
Update Types
There are two update types:
In-place: updating a live service
VIP swap: for testing first
In-place update:
Role instances updated one update domain at a timeTwo modes: automatic and manualVIP swap update:Two slots: staging and productionNew version of service deployed to staging slotExternal VIP/DIP mapping swapped with oldNote: slots retain IP addressSlide34
In-Place Update
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, override with upgradeDomainCount service definition propertyThe Windows Azure SLA is based on at least two update domains and two role instances in each roleFront-End-1Front-End-2Update Domain 1Update Domain 2Middle Tier-1Middle Tier-2Middle Tier-3Update Domain 3Middle Tier-3Front-End-2Front-End-1Middle Tier-2Middle Tier-1Slide35
VIP Swap Detail
Note about VIPs: You keep your assigned VIP for the lifetime of a deployment
Even for VIP swap, “production” retains the production VIP
Production VIP – VIP1
<
dnsname>.cloudapp.netRole ARole BPort 80Port 3389Port 3390Deployment AStaging VIP – VIP2<guid>.cloudapp.netRole A’Role B’Port 80Port 3389Port 3390Deployment A’Role ARole BPort 80Port 3389Port 3390Deployment ARole A’Role B’Port 80Port 3389Port 3390Deployment A’Production VIP – VIP1<dnsname>.cloudapp.netStaging VIP – VIP2<guid>.cloudapp.netSlide36
Update Type Capabilities
Supported Changes
In-place
VIP Swap
Delete and
RedeployOperating system versionYesYesYes.NET trust levelYesYesYesVirtual machine sizeSoonYesYesLocal storage settingsYes (increase only)YesYesNumber of rolesSoonYesYesNumber of role instancesYesYesYesNumber or type of endpointsSoonNoYesNames and values of configuration settingsSoonYesYesValues (but not names) of configuration settingsYesYesYesAdd new certificatesSoonYesYesChange existing certificatesYesYesYesDeploy new codeYesYesYesSlide37
High Availability and Windows Azure ServicesSlide38
Availability: Fault Domains
Avoid single points of physical failures
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
At least 2 fault domains per serviceWill try and spread roles out across moreAvailability SLA – 99.95%Front-End-1Fault Domain 1Fault Domain 2Front-End-2Middle Tier-2Middle Tier-1Fault Domain 3Middle Tier-3Front-End-1Middle Tier-1Front-End-2Middle Tier-2Middle Tier-3Slide39
Load Balancer Operation
FC programs load balancers (LB) to “probe” guest agent (GA) every 15 seconds
If the guest misses two probes, the LB stops forwarding traffic
The role can report “busy” status to the GA
GA stops responding to probes
LB keeps an idle connection open for 60sUse keep-alive commands if the connection needs to be open longerSlide40
Guest Agent and Role Instance Heartbeats and Timeouts
25 min
Guest
Agent
Connect
TimeoutGuest Agent Heartbeat 5sRoleInstanceLaunchIndefiniteRoleInstanceStartRoleInstanceReady(for updates only)15 minRole Instance Heartbeat 15sGuest Agent Heartbeat Timeout 10 minRole Instance “Unresponsive” Timeout30s
Load Balancer Heartbeat 15s
Load Balancer
Timeout
30s
Guest Agent
Role InstanceSlide41
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
Windows Azure enables you to develop and deploy scalable, highly-available applications in minutes
With Windows Azure, you can deploy code using any
Windows language or runtimeWindows Azure Training coursehttp://msdn.microsoft.com/en-us/wazplatformtrainingcourse.aspx