420 likes | 753 Views
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. What’s in a host?.
E N D
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
What’s in a host? Scripting & Programmability APIs Memory Management Thread Management Service Isolation Regulatory Compliance Exception Configuration Archiving & Purging Failed Message Management Disaster Recovery Message Tracking Utilization/Performance Tracking Composite Execution Tracking Health Monitoring Composite State Management Availability Monitoring Load Balancing Are you in the business of building hosts? Multi-environment Deployment Model Fail-over Configuration Management Throttling Identity & Impersonation Scale-out Configuration
Scalability LB
A Look Inside Azure Your Applications … ServiceBus Workflow Database Analytics Identity Contacts AccessControl … Reporting … Devices … Compute Storage Manage …
Access Control What can they do? Integrate Who is the caller? Orchestrate Your Customers Your App <Any ID Provider> ServiceBus WF Access Control Service Live ID Users UI Data XYZ Domain Users 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 to output claims based on access control rules 1. Define access control rules for a customer Your .NET Access Control Service STS (Managed STS) 0. Cert|Secret exchange; periodically refreshed 4. Send Token (RSTR) (output claims from 4) 6.Claims checked in Relying Party • 2. Send Claims • (RST) Relying Party (Service Bus, Your App, etc.) Requestor (Your Customer) 5. Send Message w/token
Enterprise Service Bus Service Orchestration Federated Identity and Access Control Naming Service Registry Messaging Fabric CRM Point Of Sale Supply Chain Order Entry Product Catalog Leads Customers Inventory POS Integration Trends Planning Returns Purchasing Campaigns Web Store
Internet Service Bus Service Orchestration Federated Identity and Access Control Naming Service Registry Messaging Fabric Your Services Clients On-Premise ESB MS/3rd Party Services ESB Desktop, RIA, Web Desktop, RIA, & Web
Hosting WF .NET Workflow Service “Dublin” Your Own Host WF
Service Orchestration http:// Service Bus
SQL Services FuturesExtending the SQL Data Platform to the cloud Database Reporting Data Sync 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 • Storage for all data types frombirth to archival • Rich data processing services • Operational excellence • Scale-free • High availability • Geo replication • On-demand service • Easy to use • Easy to manage • Data privacy • Competitive pricing
Trey Research Media Marketplace • Normalized relational data and unstructured data • Complex relational queries across all data • Query/processing on rich data types; e.g., spatial • Business Data Analytics on/off premise Photos Media Buyer Search CustomerWeb App Trey Research Photos andMetadata SearchAnalytics Photographer Trey Exec Photo ManagementWPF App Corporate ManagementSharePoint App Photos • Scale-free • High availability • Geo distribution • Broad reach • Agile development • Multi-master data synchronization • Occasionallyconnected clients PhotographerIn FieldMobile App Photographer
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) • Supports building applications that scale • Programming tools and interfaces are designed to be familiar to traditional desktop programmer • Introduce new concepts that are similar to existing ones at a different abstraction level
Desktop And Related Azure Concepts Desktop Windows Azure Service package Service configuration Service definition Service role Web role Worker role Internet data stores • EXE • Application Configuration • Manifest • DLL • Windows forms library • Windows service • Local 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 publicabstractclassRoleEntryPoint { //Constructors protectedRoleEntryPoint(); //Methods … publicabstractRoleStatusGetHealthStatus(); publicabstractvoidStart(); … } publicenumRoleStatus { 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
Account Container Block Blob Blob Storage ConceptsKey concepts account, container, blob, and blocks IMG001.JPG Pictures IMG002.JPG Account Block AAAA Movies MOV1.AVI Block AAAB Block AAAC
Queue Storage ConceptsAccount, queue, and message Account Queue Message 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
Table Storage ConceptsAccount, 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.