View
220
Download
0
Category
Preview:
Citation preview
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
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
Defining Cloud Computing Two broad categories
Cloud applications
– Often called Software as a Service (SaaS)
Cloud platforms
– Such as the Windows Azure platform
Cloud
Application
Users Developers
Cloud Platform
The Windows Azure Platform
Windows Azure
AppFabric
Windows
Azure
SQL
Azure Windows
Azure
Marketplace
Applications and Data
Windows Azure
AppFabric
SQL
Azure Windows
Azure
Marketplace
Windows Azure Applications and data in the cloud
Windows
Azure
Storage
Connect
Compute
Fabric
Controller
CDN
Applications and Data
Virtual Machines
Windows Azure Compute
Storage
Connect
Applications and Data
Compute
Fabric Controller
CDN
IIS
Web Role Instances
Worker Role Instances
VM Role Instances
HTTP/HTTPS, TCP
Load Balancer
Windows Azure Storage
Storage
Applications and Data
Compute
Fabric Controller
Blobs Tables Queues
CDN
Connect
HTTP/HTTPS
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
Entity . . . Entity Entity
Property Property Property
Name Type Value
Table . . . Table Table
Storage
Accounts
Storage
Web Role Web Role
Application Web Role
Instances Web Role
Web Role Worker Role
Instances
Replica 1
Replica 2
Replica 3
Blob X
Replica 1
Replica 2
Replica 3
Blob Y Table Z
Replica 1
Replica 2
Replica 3
Windows Azure Storage Illustrating replication
Queue
Instance 1
Instance 2
Instance 3
Application
Worker Role
Instance 3) Dequeue message
Web Role
Instance
Windows Azure Storage Illustrating queues
5) Delete message 2) Enqueue
message
1) Receive work
4) Do work
Windows Azure Fabric Controller
Storage
Applications and Data
Compute
Fabric Controller
Fabric
Controller
Fabric Agent
Fabric Agent
CDN
Connect
Role
Instances
Role
Instances
Developing for Windows Azure
Windows Server 2008/
Windows 7/Windows Vista SQL Server
Express
Fabric
Windows Azure Development Fabric
Storage Web Role
Instance
Worker Role
Instance
Visual Studio
CDN
Storage
Applications and Data
Compute
Fabric Controller
Windows Azure
Blobs
Connect
Windows Azure CDN
Connect
Storage
Applications and Data
Compute
Fabric Controller
IPsec
Windows Azure Compute
Role
Instances
On-Premises Windows Computer
Applications and Data
CDN
Windows Azure Connect
Endpoint Agent
Windows Azure
AppFabric
Windows
Azure
Windows
Azure
Marketplace
SQL Azure Relational data in the cloud
SQL
Azure
SQL Azure Reporting
SQL Azure Data Sync
SQL Azure Database
Data
SQL Azure Database
SQL Azure Reporting
SQL Azure Data Sync
(Virtual) Server
Database
Database
Database
SQL Azure Database
TDS
Application
SQL Azure Data Sync
SQL Azure Reporting
SQL Azure Database
SQL Azure Data Sync
SQL Azure
Database
SQL Server
SQL Azure
Database Synchronization
with SQL Azure
Data Sync
Synchronization
with SQL Azure
Data Sync
Windows Azure AppFabric Application infrastructure in the cloud
Windows
Azure
SQL
Azure Windows
Azure
Marketplace
Service Bus Access Control Caching
Windows Azure
Windows Azure
AppFabric
AppFabric Service Bus
Service Bus
Registry
4) Invoke operation on Service Bus
endpoint
3) Discover Service Bus endpoint
Client (On-premises or
cloud)
WCF Service (On-premises)
2) Expose Service Bus endpoint
Access Control Caching
Windows Azure
Service Bus
1) Register service endpoint
5) Invoke operation on service endpoint
AppFabric Access Control
Service Bus
Access Control
Application (On-premises
or cloud)
Identity Providers (IdPs)
AD FS 2.0
Windows Live ID
Facebook Yahoo . . .
2) Authenticate user, then return
IdP token
IdP Token
1) Access application and get redirected to IdP
4) Validate IdP token, then create Access Control (AC) token according
to rules for this application
Rules Engine
5) Return Access Control
token AC Token
3) Send IdP token to Access Control
IdP Token
Browser
7) Validate Access Control token, then use
its claims
6) Submit Access Control
token
AC Token
Caching
Windows Azure
Access Control
AppFabric Caching
Service Bus
Windows Azure
Access Control
Windows Azure
Application
Caching Service
Cached Data
Cached Data
Cached Data Cached Data
Caching
Windows Azure Marketplace
DataMarket
Windows Azure Marketplace AppMarket
Windows Azure Storage
SQL Azure Database
Content Partner Datasets
Windows Azure Marketplace DataMarket
Content Partner Datasets
Windows Azure Marketplace DataMarket
Service Explorer
Data Access
REST, OData Applications
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
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
Blobs
Building on Azure A non-Azure app using Windows Azure storage
SQL Azure
On-Premises
or Hosted
Application
Web Role
Instance
Tables
Building on Azure A massively scalable web app exposed on the public Internet
Users
Blobs Queues Tables
Users
Worker Role
Instance
Web Role
Instance
Building on Azure A massively scalable web app with background processing
Web Role
Instance
SQL Azure
Users
Building on Azure A web app using cloud and on-premises data
Service Bus
On-premises
Database
User
Blobs
Web Role
Instance
Queues
Worker Role
Instance
Building on Azure A parallel processing application
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
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 1 A Windows Azure application is built from one or more roles
Application
Worker Role
Instance 1
VM
Worker Role
Instance 2
VM
Worker Role
Instance 3
VM
Web Role
Instance 1
VM
Web Role
Instance 2
VM
Web Role
Instance 3
VM
Web Role
Instance 4
VM
Rule 2 A Windows Azure app runs multiple instances of each role
Rule 3 A Windows Azure app behaves correctly when any role instance fails
Application
Web Role
Instance 2
VM
Web Role
Instance 3
VM
Worker Role
Instance 1
VM
Worker Role
Instance 3
VM
Web Role
Instance 4
VM
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
Application
Web Role
Instance 1
Worker Role
Instance 2
Fabric
Controller
Worker Role
Instance 3
Web Role
Instance 3
Illustrating the 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 load-balanced 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
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
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
IaaS PaaS
Computing Messaging
Internal External Relational Scale-Out
Storage
Blobs
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
Amazon Web Services
Microsoft Windows Azure
Platform
Google App Engine
Salesforce Force.com
IaaS PaaS
Computing Messaging
Internal External Relational Scale-Out
Storage
Blobs
AppFabric Service Bus
Microsoft Windows Azure Platform
IaaS PaaS Relational Scale-Out
Messaging
Microsoft Windows Azure
Platform
Windows Azure
SQL Azure Windows
Azure Tables
Computing Storage
Internal External
Windows Azure
Queues
Blobs
Windows Azure Blobs
Amazon Web Services
Amazon Web Services
IaaS
Elastic Compute
Cloud (EC2)
PaaS Relational Scale-Out
Messaging
Relational Database
Service (RDS)
Simple Queue
Service (SQS) SimpleDB
Computing Storage
Simple Notification
Service (SNS)
Internal External Blobs
Simple Storage
Service (S3)
Elastic Beanstalk
AppFabric Service Bus
Microsoft Windows Azure
Platform
Windows Azure
SQL Azure Windows
Azure Tables
Windows Azure
Queues
Windows Azure Blobs
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
IaaS PaaS Relational Scale-Out
Messaging
App Engine
Google App Engine
Computing Storage
Datastore
Internal External
Task Queues
Blobs
Blobstore XMPP
Amazon Web Services
Elastic Compute
Cloud (EC2)
Relational Database
Service (RDS)
Simple Queue
Service (SQS) SimpleDB
Simple Notification
Service (SNS)
Simple Storage
Service (S3)
Elastic Beanstalk
AppFabric Service Bus
Microsoft Windows Azure
Platform
Windows Azure
SQL Azure Windows
Azure Tables
Windows Azure
Queues
Windows Azure Blobs
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
IaaS PaaS Relational Scale-Out
Messaging
AppForce Salesforce Force.com
Computing Storage
VMForce
Internal External
Database .com
Blobs
App Engine
Google App Engine
Datastore Task
Queues Blobstore XMPP
Amazon Web Services
Elastic Compute
Cloud (EC2)
Relational Database
Service (RDS)
Simple Queue
Service (SQS) SimpleDB
Simple Notification
Service (SNS)
Simple Storage
Service (S3)
Elastic Beanstalk
AppFabric Service Bus
Microsoft Windows Azure
Platform
Windows Azure
SQL Azure Windows
Azure Tables
Windows Azure
Queues
Windows Azure Blobs
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
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
VMware
IaaS
vCloud (w/vSphere,
vCloud Director)
PaaS IaaS PaaS
Microsoft
vCloud Express, vCloud DataCenter (both w/vSphere, vCloud Director)
Spring (VMforce*, App Engine)
For enterprises
(on-premises)
For hosters/partners
(public)
vFabric Cloud Application Platform*
Hyper-V Cloud (w/Hyper-V,
System Center)
Hyper-V Cloud (w/Hyper-V,
System Center)
Windows Azure Platform Appliance*
Windows Azure Platform Appliance*
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.
Recommended