introduction to windows azure - salsahpc

31
Windows Azure Cloud Roger Barga, Microsoft Thilina Gunarathne, Indiana University

Upload: haphuc

Post on 13-Feb-2017

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduction to Windows Azure - SALSAHPC

Windows Azure Cloud• Roger Barga, Microsoft• Thilina Gunarathne, Indiana University

Page 2: Introduction to Windows Azure - SALSAHPC

Agenda• Cloud Computing Fundamentals• The Windows Azure Service Model• Windows Azure Storage• High Availability and Windows Azure Services

Page 3: Introduction to Windows Azure - SALSAHPC

Cloud Computing Fundamentals

Page 4: Introduction to Windows Azure - SALSAHPC

Time

Dem

and

What is a “Cloud”?• Cloud: on-demand, scalable, multi-tenant, self-

service compute and storage resources

TimeDe

man

dServer Provisioning Cloud Provisioning

OverprovisionedUnderprovisioned

Page 5: Introduction to Windows Azure - SALSAHPC

Cloud Terminology• Infrastructure as a Service (IaaS):

basic compute and storage resources• On-demand servers• Amazon EC2, VMWare vCloud

• 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

Page 6: Introduction to Windows Azure - SALSAHPC

Cloud: Efficiency Versus Control

= Managed for You

Standalone

Servers

IaaS PaaS SaaS

ApplicationsRuntimesDatabaseOperating SystemVirtualizationServerStorageNetworking

Windows Azure

EfficiencyControl+Cost

Page 7: Introduction to Windows Azure - SALSAHPC

Operating System

Operating System

VM

WebServer

Operating System

VM

DBMS

2) Choose image, then create and configure VM(s) for

application

1) Choose image, then

create VM for DBMS and

configure DBMS

IaaS

LibraryVM

Images

Developer

ApplicationDataLoad

Balancer

5) Configure loadbalance

r

6) Manage VMs and DBMS (e.g.,

deploying new OS images in VMs)

3) Provision database,

then create tables and add

data

4) Install

application

Page 8: Introduction to Windows Azure - SALSAHPC

Operating System

Operating System

VM

Operating SystemVM

DBMS

PaaS Developer

ApplicationDataLoad

Balancer

2) Deploy applicat

ion

WebServer

1) Provision database,

then create tables and add

data

Page 9: Introduction to Windows Azure - SALSAHPC

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 applications• Reliable queuing, simple structured storage, SQL storage• Application services like access control, caching, and

connectivity

Page 10: Introduction to Windows Azure - SALSAHPC

Windows Azure Platform

Fabric Controller Windows Azure Networking

AppFabric Caching

AppFabric Access Control Server

SQL Azure

AppFabric Service Bus

“Red Dog” Front End (RDFE)

WindowsAzure

Compute

WindowsAzure

Middleware Services

Windows Azure Applications

Windows Azure Storage

Windows Azure CDN

WindowsAzure

Data Services

Page 11: Introduction to Windows Azure - SALSAHPC

The Windows Azure Service Model

Page 12: Introduction to Windows Azure - SALSAHPC

Windows Azure Application Philosophy: Design for Failure• Scale out for capacity• Scale out for redundancy• Asynchronous communication• Short time outs with retries• Idempotent operations• Stateless with durable external storage

Page 13: Introduction to Windows Azure - SALSAHPC

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 site• Scalable violation scanning workers

Page 14: Introduction to Windows Azure - SALSAHPC

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 availability

Front-End

Cloud Application

Front-End

HTTP/HTTPSWindow

sAzure

Storage,SQL

Azure

Load Balancer Middle-

Tier

Page 15: Introduction to Windows Azure - SALSAHPC

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 machine• Windows Azure compute SLA requires two instances

of each role• 99.95% for connectivity to two instances• Achieved with update and fault domains

Page 16: Introduction to Windows Azure - SALSAHPC

Role Contents• Definition:

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

• Code: • Web/Worker Role: Hosted DLL

and other executables• VM Role: VHD

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

Cloud ServiceRole: Front-EndDefinitionType: WebVM Size: SmallEndpoints: External-1ConfigurationInstances: 2Update Domains: 2Fault Domains: 2

Role: Middle-TierDefinitionType: WorkerVM Size: LargeEndpoints: Internal-1ConfigurationInstances: 3Update Domains: 2Fault Domains: 2

Page 17: Introduction to Windows Azure - SALSAHPC

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 stateless• Good for:• Long install (5+ minutes)• Manual install/config• Fragile install/config

Page 18: Introduction to Windows Azure - SALSAHPC

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)

Page 19: Introduction to Windows Azure - SALSAHPC

Windows Azure Storage

Page 20: Introduction to Windows Azure - SALSAHPC

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 asynchronous• Must support concurrent violation scans for different users• Failure of any node must cause at worst a delay

• Let’s look at Windows Azure storage and communications support…

WebRole

Worker

Role

Page 21: Introduction to Windows Azure - SALSAHPC

Windows Azure Storage Fundamentals• Storage characteristics• Durable – replicated three times• Scalable (capacity and throughput)• Highly available

• Simple and familiar programming interfaces• REST (HTTP and HTTPS)• .NET accessible

Page 22: Introduction to Windows Azure - SALSAHPC

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 properties

• Queues • Provide reliable storage and delivery of

messages

Page 23: Introduction to Windows Azure - SALSAHPC

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 Private

• Associate metadata with container• Metadata is <name, value> pairs• Up to 8KB per container

• List the blobs in a container

Page 24: Introduction to Windows Azure - SALSAHPC

Blob Storage Concepts

BlobContainerAccount

sally

picturesIMG001.JPG

IMG002.JPG

movies MOV1.AVI

Page 25: Introduction to Windows Azure - SALSAHPC

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 data

• Two “key” properties that together are the unique ID of the entity in the table• PartitionKey – enables scalability• RowKey – uniquely identifies the entity within the

partition

Page 26: Introduction to Windows Azure - SALSAHPC

Table Storage Concepts

EntityTableAccount

sally

users

Name =…Email = …Name =…Email = …

photo index

Photo ID =…Date =…

Photo ID =…Date =…

Page 27: Introduction to Windows Azure - SALSAHPC

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 64K• FIFO in general, but not guaranteed

• Pulling an item from the queue doesn’t delete it• It becomes invisible for a visibility timeout• Item must be deleted before timeout or else it becomes

visible

Page 28: Introduction to Windows Azure - SALSAHPC

Queue Storage Concepts

MessageQueueAccount

sally

thumbnail jobs

128x128, http://…

256x256, http://…

photo processing

jobs

http://…

http://…

Page 29: Introduction to Windows Azure - SALSAHPC

Account

Container Blobs

Table Entities

Queue Messages

Windows Azure Data Storage Concepts

http://<account>.blob.core.windows.net/<container>

http://<account>.table.core.windows.net/<table>

http://<account>.queue.core.windows.net/<queue>

Page 30: Introduction to Windows Azure - SALSAHPC

Branding PoliceWeb Role

Web Role

Worker

RoleWork

erRole

{…-…-...-…}-report.txt {…-…-...-…}

{…-…-...-…}

Working on…Violations:…

bran

ding

polic

e.clo

udap

p.ne

t

Page 31: Introduction to Windows Azure - SALSAHPC

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 runtime

• Windows Azure Training course• http

://msdn.microsoft.com/en-us/wazplatformtrainingcourse.aspx