it strategist and international advisor the cloud a ... · it strategist and international advisor...

81
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

Upload: nguyendat

Post on 29-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

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

Google

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

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

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 new web app with relational storage

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

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

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

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

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

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

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

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-*