introduction to windows azure - salsahpc
TRANSCRIPT
Windows Azure Cloud• Roger Barga, Microsoft• Thilina Gunarathne, Indiana University
Agenda• Cloud Computing Fundamentals• The Windows Azure Service Model• Windows Azure Storage• High Availability and Windows Azure Services
Cloud Computing Fundamentals
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
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
Cloud: Efficiency Versus Control
= Managed for You
Standalone
Servers
IaaS PaaS SaaS
ApplicationsRuntimesDatabaseOperating SystemVirtualizationServerStorageNetworking
Windows Azure
EfficiencyControl+Cost
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
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
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
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
The Windows Azure Service Model
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
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
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
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
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
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
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)
Windows Azure Storage
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
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
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
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
Blob Storage Concepts
BlobContainerAccount
sally
picturesIMG001.JPG
IMG002.JPG
movies MOV1.AVI
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
Table Storage Concepts
EntityTableAccount
sally
users
Name =…Email = …Name =…Email = …
photo index
Photo ID =…Date =…
Photo ID =…Date =…
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
Queue Storage Concepts
MessageQueueAccount
sally
thumbnail jobs
128x128, http://…
256x256, http://…
photo processing
jobs
http://…
http://…
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>
Branding PoliceWeb Role
Web Role
Worker
RoleWork
erRole
{…-…-...-…}-report.txt {…-…-...-…}
{…-…-...-…}
Working on…Violations:…
bran
ding
polic
e.clo
udap
p.ne
t
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