INTRODUCTIONS Storm Technology Who we are and what we do David Chappell IT strategist and international advisor The Cloud A Rational Perspective The cloud platforms An objective overview of the Windows Azure Application scenarios The architectural choices for ROI Logistics Coffee Break 3.00 3.30pm Workshop Close 5.00pm
The Windows Azure Platform: A Perspective David Chappell Chappell & Associates
Agenda An Overview of the Windows Azure Platform Using the Windows Azure Platform: Scenarios Understanding the Windows Azure Programming Model A Broader Look at Cloud Platforms
An Overview of the Windows Azure Platform
Defining Cloud Computing Two broad categories Cloud Application Cloud Platform Cloud applications Often called Software as a Service (SaaS) Cloud platforms Users Developers Such as the Windows Azure platform
The Windows Azure Platform Applications and Data Windows Azure AppFabric Windows Azure SQL Azure Windows Azure Marketplace
Windows Azure Applications and data in the cloud Applications and Data CDN Connect Compute Storage Fabric Controller Windows Azure AppFabric Windows Azure SQL Azure Windows Azure Marketplace
Windows Azure Compute Web Role Instances Worker Role Instances VM Role Instances IIS Load Balancer HTTP/HTTPS, TCP Virtual Machines Applications and Data CDN Connect Compute Storage Fabric Controller
Windows Azure Storage Blobs Tables Queues HTTP/HTTPS Applications and Data CDN Connect Compute Storage Fabric Controller
Windows Azure Storage Options for accessing blobs From Windows Azure applications or other applications: via RESTful requests From Windows Azure applications: via Windows Azure Drives This makes a blob look like an NTFS file system to the application
Windows Azure Storage A closer look at tables Table Table Table... Entity Entity Entity... Storage Accounts Property Property Property Name Type Value
Windows Azure Storage Illustrating replication Application Web Role Instances Web Role Web Role Worker Role Instances Web Role Web Role Replica 1 Replica 1 Replica 1 Storage Replica 2 Replica 2 Replica 2 Replica 3 Replica 3 Replica 3 Blob X Blob Y Table Z
Windows Azure Storage Illustrating queues Application 1) Receive work Web Role Instance 3) Dequeue message Worker Role Instance 4) Do work 2) Enqueue message 5) Delete message Instance 1 Instance 2 Instance 3 Queue
Windows Azure Fabric Controller Role Instances Fabric Agent Role Instances Fabric Agent Fabric Controller Applications and Data CDN Connect Compute Storage Fabric Controller
Developing for Windows Azure Visual Studio Windows Azure Development Fabric Web Role Instance Worker Role Instance Storage Fabric Windows Server 2008/ Windows 7/Windows Vista SQL Server Express
Windows Azure CDN Blobs Windows Azure Applications and Data CDN Connect Compute Storage Fabric Controller
Windows Azure Connect Applications and Data Role Instances Endpoint Agent IPsec On-Premises Windows Computer Windows Azure Compute Applications and Data CDN Connect Compute Storage Fabric Controller
SQL Azure Relational data in the cloud Data SQL Azure Reporting SQL Azure Data Sync SQL Azure Database Windows Azure AppFabric Windows Azure SQL Azure Windows Azure Marketplace
SQL Azure Database Application TDS (Virtual) Server Database Database Database SQL Azure Reporting SQL Azure Data Sync SQL Azure Database
SQL Azure Data Sync SQL Azure Database Synchronization with SQL Azure Data Sync SQL Azure Database Synchronization with SQL Azure Data Sync SQL Server SQL Azure Reporting SQL Azure Data Sync SQL Azure Database
Windows Azure AppFabric Application infrastructure in the cloud Service Bus Access Control Caching Windows Azure Windows Azure AppFabric Windows Azure SQL Azure Windows Azure Marketplace
AppFabric Service Bus 3) Discover Service Bus endpoint 4) Invoke operation on Service Bus endpoint Service Bus Registry 2) Expose Service Bus endpoint 1) Register service endpoint 5) Invoke operation on service endpoint Client (On-premises or cloud) WCF Service (On-premises) Service Bus Access Control Windows Azure Caching
AppFabric Access Control Identity Providers (IdPs) Access Control AD FS 2.0 Windows Live ID Google 4) Validate IdP token, then create Access Control (AC) token according to rules for this application Yahoo Facebook... Rules Engine 2) Authenticate user, then return IdP token IdP Token 3) Send IdP token to Access Control IdP Token AC Token 5) Return Access Control token 7) Validate Access Control token, then use its claims Browser AC Token 6) Submit Access Control token Application (On-premises or cloud) 1) Access application and get redirected to IdP Service Bus Access Control Windows Azure Caching
AppFabric Caching Caching Service Cached Data Application Cached Data Cached Data Cached Data Windows Azure Service Bus Access Control Windows Azure Caching
Windows Azure Marketplace DataMarket Windows Azure Marketplace DataMarket Service Explorer Content Partner Datasets Applications REST, OData Data Access Content Partner Datasets Windows Azure Storage SQL Azure Database Windows Azure Marketplace DataMarket Windows Azure Marketplace AppMarket
Windows Azure Platform Pricing A summary (in US dollars) Compute: $0.05 to $0.96/hour for each role instance depending on instance size Storage: Windows Azure blobs and tables: Data: $0.15/GB per month Access: $0.01/10,000 operations SQL Azure relational: $9.99/ GB per month Bandwidth: $0.10/GB in, $0.15/GB out
Using the Windows Azure Platform: Scenarios
Applying Azure (1) Some characteristics of Azure-appropriate applications Apps that need massive scale Example: A Web 2.0 application Apps that need high reliability Example: A Software as a Service (SaaS) application Apps with variable load Example: An on-line ticketing application Apps with a short or unpredictable lifetime Example: An app created for a marketing campaign
Applying Azure (2) Some characteristics of Azure-appropriate applications Apps that do parallel processing Example: A financial modeling application Apps that must fail fast or scale fast Example: Start-ups Apps that don t fit well in an organization s data center Example: A business unit that wishes to avoid its IT department Apps that can benefit from external storage Example: An application that archives data
Building on Azure A non-azure app using Windows Azure storage Blobs SQL Azure On-Premises or Hosted Application
Building on Azure A massively scalable web app exposed on the public Internet Tables Web Role Instance Users
Building on Azure A massively scalable web app with background processing Tables Web Role Instance Queues Worker Role Instance Blobs Users
Building on Azure A new web app with relational storage Web Role Instance SQL Azure Users
Building on Azure A web app using cloud and on-premises data SQL Azure Web Role Instance Service Bus Users On-premises Database
Building on Azure A parallel processing application Queues Blobs Web Role Instance Worker Role Instance User
Understanding the Windows Azure Programming Model
The Three Rules 1. A Windows Azure application is built from one or more roles 2. A Windows Azure application runs multiple instances of each role 3. A Windows Azure application behaves correctly when any role instance fails
Rule 1 A Windows Azure application is built from one or more roles Windows Azure today supports three role types: Web role: Run IIS, intended for Web apps Worker role: Run arbitrary code VM role: Runs a customer-supplied Windows Server 2008 R2 VHD A simple example: Application Web Role Worker Role
Rule 2 A Windows Azure app runs multiple instances of each role Application VM VM VM VM Web Role Instance 1 Web Role Instance 2 Web Role Instance 3 Web Role Instance 4 VM VM VM Worker Role Instance 1 Worker Role Instance 2 Worker Role Instance 3
Rule 3 A Windows Azure app behaves correctly when any role instance fails Application VM VM VM Web Role Instance 2 Web Role Instance 3 Web Role Instance 4 VM VM Worker Role Instance 1 Worker Role Instance 3
The Fabric Controller A closer look The fabric controller owns all of the machines in a particular Windows Azure data center It creates and monitors role instances on those machines It starts new instances when: A new application is deployed An instance in a running application fails It needs to update system software in an instance virtual or physical machine Such as Windows patches
Illustrating the Fabric Controller Application Worker Role Instance 2 Worker Role Instance 3 Web Role Instance 1 Web Role Instance 3 Fabric Controller
Benefits What the Windows Azure programming model provides (1) Lower administrative costs Because the fabric controller installs patches and does other administration work More scalable applications Role instances are created by the fabric controller The number of role instances can be changed dynamically
Benefits What the Windows Azure programming model provides (2) More available applications Protection against hardware failures Protection against software failures No-downtime application updates With a single-step update, or With a rolling update using update domains No-downtime system software updates By shutting down some of a role s instances, updating their software, then restarting them The result: You can create apps that cost less to run, scale better, and need never go down
Moving Applications to Windows Azure Examples (1) An ASP.NET application with multiple loadbalanced instances that share state stored in SQL Server An easy move; it already matches the Windows Azure programming model An ASP.NET application with multiple instances that maintains per-instance state and relies on sticky sessions Requires some work
Moving Applications to Windows Azure Examples (2) A Silverlight or WPF client that accesses WCF services running in a middle tier If the services don t maintain per-client state between calls, an easy move Otherwise, some redesign will be required An application with a single instance running on Windows Server that maintains state on its own machine Some redesign needed Running the app in a VM role probably won t work
A Broader Look at Cloud Platforms
What is a Cloud Platform? A more general view It lets developers create and run apps, store data, and more It provides self-service access to resources, such as computing and storage Typically via a browser It allows granular, on-demand allocation of resources It charges only for the resources an application uses
Public Clouds and Private Clouds Typical definitions Public cloud: A cloud platform run by a service provider, such as Microsoft, Amazon, or Google, made available to many end-user organizations Private cloud: A cloud platform run solely for a single end-user organization, such as a bank or retailer The technology is like public clouds, but the economics are different Hybrids of the two are also possible
Public Clouds and Private Clouds An illustration Private Cloud Public Cloud
The Economics of Public Clouds An example perspective Microsoft believes public clouds will dominate in the long run for three reasons: Supply-side savings: Large-scale data centers provide lower costs per server Demand-side aggregation: Aggregating demand for computing smooths overall variability, allowing server utilization rates to increase Multi-tenancy efficiency: Multitenant applications lower the application management and server cost per tenant See http://www.microsoft.com/presspass/presskits/cloud/docs/the- Economics-of-the-Cloud.pdf
Cloud Platform Technologies Summarizing the most important options Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Infrastructure as a Service Platform as a Service Relational storage (SQL) Non-relational scalable storage Binary Large Objects Connecting application components in the cloud Connecting applications through the cloud
Computing Infrastructure as a Service (IaaS) Developers create virtual machines (VMs) on demand They have full access to these VMs Strengths: Familiar technologies Familiar tools, e.g., for software development Limited code lock-in Weaknesses: Requires administrative skills to use Limited additional functionality
Computing Platform as a Service (PaaS) Developers provide an application, which the platform runs Developers don t work directly with VMs Strengths: Provides higher-level services than IaaS Requires essentially no administrative skills Weaknesses: Allows less control of the environment May use unfamiliar tools and technologies May provide code lock-in
Computing What s the most popular approach? IaaS is significantly more popular than PaaS today Perspective: IaaS is easier to adopt than PaaS IaaS provides your existing world in the cloud Over time, PaaS will likely dominate It provides a higher level of service
Storage Relational Traditional relational storage in the cloud With support for SQL Strengths: Familiar technologies Many available tools, e.g., for reporting Limited data lock-in Can be cheaper than on-premises relational storage Weaknesses: Scaling to handle very large data is challenging
Storage Scale-out Massively scalable storage in the cloud No support for SQL Strengths: Scaling to handle very large data is straightforward Can be cheaper than relational storage Weaknesses: Unfamiliar technologies Few available tools Significant data lock-in
Storage Blobs Storage for Binary Large OBjects in the cloud Such as video, back-ups, etc. Strengths: Globally accessible way to store large data Can be cheaper than on-premises storage Weaknesses: Provides only simple unstructured storage
Messaging Internal Primarily designed to let applications running on a cloud platform communicate with each other Typically through queues Strengths: Fast and simple Weaknesses: Doesn t provide familiar queuing semantics, such as in-order, exactly-once delivery
Messaging External Primarily designed to let applications running on-premises or in the cloud communicate via the cloud Might use queues or other mechanisms Strengths: Globally available and cheap Weaknesses: Immature technologies with limited functionality Diverse offerings from different cloud vendors
Public Cloud Platforms A taxonomy of today s leaders Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Microsoft Windows Azure Platform Amazon Web Services Google App Engine Salesforce Force.com
Microsoft Windows Azure Platform Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Microsoft Windows Azure Platform Windows Azure SQL Azure Windows Azure Tables Windows Azure Blobs Windows Azure Queues AppFabric Service Bus
Amazon Web Services Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Microsoft Windows Azure Platform Windows Azure SQL Azure Windows Azure Tables Windows Azure Blobs Windows Azure Queues AppFabric Service Bus Amazon Web Services Elastic Compute Cloud (EC2) Elastic Beanstalk Relational Database Service (RDS) SimpleDB Simple Storage Service (S3) Simple Queue Service (SQS) Simple Notification Service (SNS)
Amazon Web Services Strengths and weaknesses Strengths Amazon is a leader in cloud platforms Amazon provides a wide range of services Amazon offers a broad choice of environments, especially for Linux Weaknesses Amazon isn t a traditional enterprise vendor Windows is a second-class citizen on EC2 Amazon isn t strong in PaaS Elastic Beanstalk was just announced
Amazon Web Services Pricing examples Compute: $0.02/hour to $3.68/hour for each VM (depending on size and OS) Lower spot prices are also typically available Blob storage: Data: $0.14/GB per month to $0.037/GB per month (depending on data size and redundancy) Access: $0.01/1,000 PUT, COPY, POST, LIST operations, $0.01/10,000 GET operations Bandwidth: $0.10/GB in, $0.15/GB to $0.08/GB out (depending on volume)
Competitors to AWS An Aside Many firms now offer IaaS services, such as: Rackspace Cloud Servers GoGrid Cloud Hosting Terremark vcloud Express IaaS is a low-margin business And those margins will shrink
Google App Engine Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Microsoft Windows Azure Platform Windows Azure SQL Azure Windows Azure Tables Windows Azure Blobs Windows Azure Queues AppFabric Service Bus Amazon Web Services Elastic Compute Cloud (EC2) Elastic Beanstalk Relational Database Service (RDS) SimpleDB Simple Storage Service (S3) Simple Queue Service (SQS) Simple Notification Service (SNS) Google App Engine App Engine Datastore Blobstore Task Queues XMPP
Google App Engine Strengths and weaknesses Strengths: For Java or Python developers, App Engine is likely to provide a more familiar environment than Windows Azure App Engine s pricing model is attractive, especially for start-ups Weaknesses: Google isn t a traditional enterprise vendor And App Engine today is focused on Web 2.0 apps They don t offer a standard SLA App Engine provides no relational storage
Google App Engine Pricing examples Free quota per day: Compute: 6.5 CPU hours Datastore storage: 1 GB Blob storage: 1 GB Bandwidth: 1 GB in, 1/GB out Usage above this quota: Compute: $0.10/CPU hour Datastore storage: $0.15/GB per month Blob storage: $0.15/GB per month Bandwidth: $0.10/GB in, $0.12/GB out
Google App Engine Looking ahead Coming soon: Google App Engine for Business, with: Relational storage and SQL A service level agreement (SLA) Support Pricing for enterprise apps built on this platform: $8/user per month, up to a maximum of $1,000
Salesforce Force.com Computing Storage Messaging IaaS PaaS Relational Scale-Out Blobs Internal External Microsoft Windows Azure Platform Windows Azure SQL Azure Windows Azure Tables Windows Azure Blobs Windows Azure Queues AppFabric Service Bus Amazon Web Services Elastic Compute Cloud (EC2) Elastic Beanstalk Relational Database Service (RDS) SimpleDB Simple Storage Service (S3) Simple Queue Service (SQS) Simple Notification Service (SNS) Google App Engine App Engine Datastore Blobstore Task Queues XMPP Salesforce Force.com AppForce VMForce Database.com
Force.com Strengths and weaknesses Strengths: Customers can create AppForce apps faster than with.net or Java Salesforce.com is perceived as a leader in cloud computing Weaknesses: Applications written for AppForce can run nowhere else And it focuses on data-driven business applications only AppForce tools and languages are proprietary There s no relational storage
Salesforce.com Force.com Pricing examples One (small) application is free Enterprise Edition: $50/user per month Compute: up to 10 applications Storage: up to 200 database objects Bandwidth: No extra charge Unlimited Edition: $75/user per month Compute: unlimited applications Storage: up to 2,000 database objects Bandwidth: No extra charge
Public Clouds and Private Clouds A reprise Private Cloud Public Cloud
From Server Virtualization to Private Clouds IaaS allows allocating, managing, and charging for VMs in a more effective way If this makes sense in a public cloud platform, why not use it in your own data center? Today, private cloud platforms are largely just IaaS in your data center Although look for PaaS in the future as well
Private Cloud Platforms A summary of today s leaders For enterprises (on-premises) For hosters/partners (public) IaaS PaaS IaaS PaaS Microsoft Hyper-V Cloud (w/hyper-v, System Center) Windows Azure Platform Appliance* Hyper-V Cloud (w/hyper-v, System Center) Windows Azure Platform Appliance* VMware vcloud (w/vsphere, vcloud Director) vfabric Cloud Application Platform* vcloud Express, vcloud DataCenter (both w/vsphere, vcloud Director) Spring (VMforce*, App Engine) vfabric Cloud Application Platform* *Full definition to come
Conclusions Cloud platforms are here Microsoft is placing a big bet with the Windows Azure platform A new world is unfolding Prepare to be part of it
CONCLUSIONS Storm Technology Azure Services Provide assessment services Qualify opportunity Identify candidate applications Assess business case Assess migration suitability Build portfolio migration plan Migrate current applications to Azure Develop new applications on Azure Help internal development teams take their first steps Thank you for joining us and please fill out evaluation forms
For Further Reading Introducing the Windows Azure Platform http://go.microsoft.com/fwlink/?linkid=158011 Introducing Windows Azure http://go.microsoft.com/?linkid=9682907 Windows Azure and ISVs: A Guide for Decision Makers http://go.microsoft.com/fwlink/?linkid=157857
About the Speaker David Chappell is Principal of Chappell & Associates (www.davidchappell.com) in San Francisco, California. Through his speaking, writing, and consulting, he helps people around the world understand, use, and make better decisions about new technology. David has been the keynote speaker for more than a hundred events and conferences on five continents, and his seminars have been attended by tens of thousands of IT leaders, architects, and developers in forty countries. His books have been published in a dozen languages and used regularly in courses at MIT, ETH Zurich, and other universities. In his consulting practice, he has helped clients such as Hewlett-Packard, IBM, Microsoft, Stanford University, and Target Corporation adopt new technologies, market new products, train their sales staffs, and create business plans. Earlier in his career, David wrote networking software, chaired a U.S. national standards working group, and played keyboards with the Peabody-award-winning Children s Radio Theater. He holds a B.S. in Economics and an M.S. in Computer Science, both from the University of Wisconsin- Madison.
Copyright 2011 David Chappell Chappell & Associates www.davidchappell.comsoap/ws-*