You are on page 1of 42

Windows Azure Building web sites and services in the cloud

Manu Cohen-Yashar Sela Group http://blogs.microsoft.co.il/blogs/applisec

Agenda
Why cloud services Windows azure Main programming elements Demo Q&A Summary

Why cloud services

Thread Management

Memory Management

Scripting & Programmability APIs

Service Isolation

Regulatory Compliance

Exception Configuration Failed Message Management Message Tracking

Archiving & Purging

Disaster Recovery

Utilization/Performance Tracking

Composite Execution Tracking

Health Monitoring

Composite State Management Load Balancing

Availability Monitoring

Multi-environment Deployment Model

Fail-over

Configuration Management Identity & Impersonation Scale-out Configuration

Throttling

Scalability

LB

Scalability in another dimation

Azure Services Platform

A Look Inside Azure


Your Applications

Service Bus Access Control

Workflow

Database
Reporting

Analytics

Identity
Devices

Contacts

Compute

Storage

Manage

ACCESS CONTROL

Access Control
Who is the caller? What can they do? Integrate Orchestrate Service Bus UI
Your App

Live ID Users

Access Control Service

<Any ID Provider>

WF

XYZ Domain Users

Data

Your Customers

Store

Access Control Moving Parts


Portal
A UI for creating and managing collections of access control rules

Client API
Provides a programmatic way to manage collections of access control rules

Service (STS)
A hosted service that issues tokens Developers interact with the service via the Geneva Framework

Access Control Interactions


3. Map input claims 1. Define access control rules for a customer

to output claims based on access control rules

6.Claims checked in Relying Party

0. Cert|Secret exchange; periodically refreshed

Your .NET Access Control Service STS (Managed STS)

Relying Party (Service Bus, Your App, etc.)

5. Send Message w/token

Requestor (Your Customer)

SERVICE BUS

Enterprise Service Bus


Service Orchestration

Federated Identity and Access Control

Naming
Service Registry Messaging Fabric

Point Of Sale
POS Integration Web Store Product Catalog Returns

Supply Chain
Inventory Purchasing Order Entry Planning

CRM
Customers Campaigns Leads Trends

Internet Service Bus


Service Orchestration

Federated Identity and Access Control

Naming
Service Registry Messaging Fabric

Your Services

Clients
Desktop, Desktop, RIA, Web RIA, & Web

On-Premise ESB

MS/3rd Party Services

ESB

SERVICE ORCHESTRATION

Hosting WF
.NET Workflow Service

Dublin

Your Own Host

WF

Service Orchestration

http://

Service Bus

SQL DATA SERVICES

SQL Services Futures

Extending the SQL Data Platform to the cloud

Reporting Data Mining Reference Data ETL

Data services tier of the Azure Services Platform Built on SQL Server foundation Broad data platform capabilities as a service
Friction-free provisioning, scaling Significant investments in scale, HA, lights-out operation and TCO

SQL Data Services (SDS)


Database as a Service SDS is built on three key pillars
1. Storage for all data types from birth to archival 2. Rich data processing services 3. Operational excellence

Trey Research Media Marketplace


Photo Management WPF App


Photographer In Field Mobile App

What Is Windows Azure?


It is an operating system for the cloud It is designed for utility computing It has four primary features:
Service management Compute Storage Developer experience

What Should The Cloud OS Provide?


The same facilities that a desktop OS provides, but on a set of connected servers:
Abstract execution environment Shared file system Resource allocation Programming environments

Utility computing

24/7 operation Pay for what you use Simpler, transparent administration

Windows Azure
The Windows Azure provides core technologies for building rich services on top of unreliable but scalable hardware (i.e., a cloud operating system)

Introduce new concepts that are similar to existing ones at a different abstraction level

Supports building applications that scale Programming tools and interfaces are designed to be familiar to traditional desktop programmer

Desktop And Related Azure Concepts


Desktop
EXE Application Configuration Manifest DLL Windows forms library Windows service Local data stores

Windows Azure
Service package Service configuration Service definition Service role Web role Worker role Internet data stores

Service Concepts
Service definition
Defines aspects of a service that cannot be changed without redeployment
Types of roles and static role configuration Set of configuration settings for a role Contract with the environment code runs

Service configurations
Defines values for properties that can be dynamically updated for a running deployment
Values of a configuration parameter Number of running instances

Web Role
Web farm that handles request from the internet IIS7 hosted web core
Hosts ASP.NET XML based configuration of IIS7 Integrated managed pipeline Supports SSL

Public Internet

Web Role
Load Balancer

Storage Services

Worker Role
No inbound network connections Can read requests from queue in storage

Public Internet

Worker Role

Storage Service

Service Runtime API


Every role has access to APIs for common functionality needed for services
Read configuration setting values Write messages to set of standard logging streams
Printf sitting on top of a lot of plumbing so logs are downloadable and archived easily Critical messages generate live alerts

Get access to unreliable local storage for caching

Defines interface for worker role

RoleEntryPoint For Worker Role


public abstract class RoleEntryPoint { //Constructors protected RoleEntryPoint(); //Methods public abstract RoleStatus GetHealthStatus(); public abstract void Start(); } public enum RoleStatus { Healthy , Unhealthy, }

Windows Azure Storage Abstractions


Blobs provide a simple interface for storing named files along with metadata for the file Tables provide structured storage. A table is a set of entities, which contain a set of properties Queues provide reliable storage and delivery of messages for an application

Blob Storage Concepts


Key concepts account, container, blob, and blocks

Account

Container

Blob

Block

IMG001.JPG Pictures IMG002.JPG Account Block AAAA Movies MOV1.AVI Block AAAB Block AAAC

Queue Storage Concepts


Account, queue, and message

Account

Queue

Message

128x128, http:// Thumbnail Jobs 256x256, http:// Account http:// Indexing Jobs http://

Table Storage Concepts


Account, table, and entity

Account

Table

Entity

Name=hash= Users Name=hash= Account Tag=id= PhotoIndex Tag=,id=

Partition Key and Partition


Every table has a partition key
It is the first property (column) of your table All entities in a table with the same partition key value live in the same partition

Need to choose partitioning scheme to make data access scalable

DEMO
Building your first application

Summary
The hosting problem Windows azure platform enables you to concentrate on your business logic A new programming model
Web role Worker role Blobs, Tables and queues

Additional Resources
www.azure.com http://www.microsoftpdc.com/

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

You might also like