platforms in the cloud: where will your next application run?€¦ · platforms in the cloud: where...

53
Platforms in the Cloud: Where Will Your Next Application Run? David Chappell Chappell & Associates

Upload: others

Post on 20-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Platforms in the Cloud:

Where Will Your Next Application Run?

David Chappell

Chappell & Associates

Defining the Cloud

On-PremisesApplications

Defining Cloud ComputingTwo broad categories

Cloud applications

– Sometimes called Software as a Service (SaaS)

Cloud platforms

– The focus today

Cloud Application

Users Developers

Cloud Platform

Defining Cloud ComputingExamples

Cloud applications:

– Salesforce.com CRM

– Google Apps

– Microsoft Exchange Online

– Your favorite Web site (?)

Cloud platforms:

– Amazon Web Services (AWS)

– Google AppEngine

– Microsoft Windows Azure platform

– Salesforce.com Force.com

What is a Cloud Platform?Some defining characteristics

It lets developers create and run apps, store data, and more

It provides self-service access to resources, e.g., via a browser

It allows fine-grained allocation of resources

It charges only for the resources an application uses

Public Clouds vs. Private Clouds Typical definitions

Public cloud: A cloud platform run by a service provider, such as Amazon, Google, or Microsoft, 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

Categorizing Public Cloud PlatformsThe usual split

Infrastructure as a Service (IaaS)

– Developers create virtual machines (VMs), to which they have full access

– Provides total control, but also total responsibility

Platform as a Service (PaaS)

– Developers provide an application, which the platform runs

– Provides an easy-to-use execution environment, but limits freedom

Cloud Platforms TodayA taxonomy

Private Cloud Platforms

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Public Cloud Platforms

Cloud Platforms TodayAmazon Web Services

Private Cloud Platforms

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Amazon Web Services

Amazon Web ServicesComponents

Elastic Compute Cloud (EC2)

– A VM-based compute service

Simple Storage Service (S3)

– Blob storage

SimpleDB

– Scale-out storage

Simple Queue Service (SQS)

Relational Database Service (RDS)

More

Amazon Web ServicesAn illustration

VM

Linux/Windows

Application

S3 SimpleDB SQS

RDS

VM

Linux/Windows

Relational DBMS

Amazon Web ServicesAmazon Machine Images (AMIs)

An AMI is an operating system image that an EC2 VM can use

– Amazon and others provide many pre-defined AMIs

Example AMIs:

– Fedora Linux with Rails and/or MySQL

– Oracle Enterprise Linux with Oracle Database 11g

– SUSE Linux with IBM WebSphere Application Server

– Windows Server 2008 with SQL Server 2008

Domain

Item A Item C . . .Item B

Amazon Web ServicesScalable data storage with SimpleDB

Users can create domains that contain items

– Each item has its own attributes

– Each attribute has one or more values

Queries can use operators such as =, !=, <, >, AND, OR, NOT, INTERSECTION, and UNION

Value 1 Value 2 Value 3Value 1 Value 2Value 1

Attribute X Attribute Y Attribute Z

Item B

Working with Big DataAn aside

Really big data sets are getting more common

– Standard relational databases don’t work

– The result: The NOSQL movement

Many big data sets are a good fit for public clouds

– Public cloud platforms commonly provide very scalable, non-relational data stores

– Such as AWS SimpleDB

Amazon Web ServicesPricing examples

Compute: $0.085/hour to $3.16/hour for each VM, depending on size and OS

Blob storage:

– Data: $0.15/GB per month to $0.055/GB per month, depending on amount stored

– Access: $0.01/10,000 GET operations

Bandwidth:

– In: $0.10/GB (but free through 6/30/10)

– Out: $0.15/GB to $0.08/GB, depending on volume

Cloud Platforms TodayIaaS competitors to AWS

Private Cloud Platforms

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Amazon Web Services

Cloud Platforms TodayGoogle AppEngine

Private Cloud Platforms

Google AppEngine

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Amazon Web Services

Google AppEngineComponents

Python/Java runtime

– A compute service

Blobstore

– Blob storage

Datastore

– Scale-out storage

Task Queue

More

Google AppEngineAn illustration

Blobstore Datastore Task Queue

Java/Python Runtime

Java Applications

Python Applications

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

Cloud Platforms TodayWindows Azure Platform

Private Cloud Platforms

Google AppEngine

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Amazon Web Services

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Windows Azure Platform

Windows Azure PlatformComponents

Windows Azure

– A VM-based compute service

Windows Azure Storage Blobs

– Blob storage

Windows Azure Storage Tables

– Scale-out storage

Windows Azure Storage Queues

SQL Azure Database

Windows Azure platform AppFabric

– Infrastructure

Windows Azure PlatformAn illustration

VM

Windows

VM

Windows

Application(Worker role)

Application(Web role)

Blobs Tables Queues

SQL Azure

Windows Azure PlatformThe fabric

Fabric Controller

Fabric Agent

Storage

Fabric Agent

Web Role Worker Role

Windows Azure PlatformPricing examples

Compute: $0.12/hour to $0.96/hour for each instance depending on instance size

Blob storage:

– Data: $0.15/GB per month

– Access: $0.01/10,000 operations

Relational storage:

– $9.99/month for 1 GB, $99.99/month for 10 GB

Bandwidth:

– In: $0.10/GB (off-peak free through 6/30/10)

– Out: $0.15/GB

Cloud Platforms TodayForce.com

Private Cloud Platforms

Salesforce.com Force.com

Google AppEngine

Public Cloud Platforms

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Amazon Web Services

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Windows Azure Platform

Salesforce.com Force.comComponents

Force.com runtime

– A compute service

Force.com database

– Scale-out storage

Salesforce.com Force.comAn illustration

Force.com Database

Force.com Runtime

Force Applications

Force Applications

Salesforce.com Force.comPricing 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

Using Public Cloud Platforms

Applying Public Cloud Platforms (1)Some characteristics of typical applications

App development

– Example: A VM-based dev/test environment

Apps with variable load

– Example: An on-line ticketing application

Apps that do parallel processing

– Example: A financial modeling application

Apps that need massive scale

– Example: A Web 2.0 application

Apps that need high reliability

– Example: A SaaS application

Applying Public Cloud Platforms (2)Some characteristics of typical applications

Apps with a short or unpredictable lifetime

– Example: An app created for a marketing campaign

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

Using the Public CloudAn on-premises app using cloud storage

Relational Storage

On-Premises Application

Blobs

Application

Using the Public CloudA massively scalable web app for the public Internet

Users

Scale-Out Storage

Users

Application Back End

Application Front End

Using the Public CloudA massively scalable web app with background processing

Scale-Out Storage

Queues Blobs

Relational Storage

Users

Using the Public CloudA web app with relational storage

Application

Blobs

User

ClientWorkers

Using the Public CloudA parallel processing application

Queues

Private Cloud Platforms

Private Clouds vs. Public CloudsTypical definitions (again)

Public cloud: A cloud platform run by a service provider, such as Amazon, Google, or Microsoft, 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

– They’re the evolution of today’s virtualized data centers

Cloud Platforms TodayPrivate cloud providers

Private Cloud Platforms

Salesforce.com Force.com

Google AppEngine

Public Cloud Platforms

VMware vSphere(ESX, vCenter)

Microsoft (Hyper-V, System Center)

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Platform as a Service (PaaS)

Amazon Web Services

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Windows Azure Platform

Cloud Platforms TodayPrivate cloud technologies for the public cloud

Private Cloud Platforms

Salesforce.com Force.com

Google AppEngine

Public Cloud Platforms

VMware vSphere(ESX, vCenter)

Microsoft (Hyper-V, System Center)

Infrastructure as a Service (IaaS) For Scalable

Web AppsFor Data-Driven Business Apps

Microsoft (Hyper-V, System Center)

Hosting Partners

VMware vSphere(ESX, vCenter)

Hosting Partners

Platform as a Service (PaaS)

Amazon Web Services

Rackspace Cloud Servers, GoGrid Cloud

Hosting, Others

Windows Azure Platform

ESRI in the Cloud

How ESRI Uses the Cloud TodayCloud applications

ArcGIS.com (ArcGIS Online): Lets people build maps, share content, and more

Business Analyst Online: Provides access to demographic data

ArcLogistics: Helps organizations define optimized routing

ArcLogisticsAn example of moving a desktop app to the cloud

ArcLogistics was originally built for the desktop

– It now runs in the cloud, too

Moving to the cloud provided:

– Lower cost of entry for customers

– Try before you buy model

– One common place to update the data

– Better customer support

Service

Cloud Platforms: Another ApproachAn aside

Some cloud platforms let you run your apps on them

– Such as AWS, AppEngine, Azure, and Force.com

Other cloud platforms offer cloud-based services to on-premises applications

– Such as those provided by ESRI

Client

How ESRI Uses the Cloud TodayCloud platforms

ArcGIS.com: Exposes maps via Web services

ArcGIS Server on AWS

ArcGIS Spatial Data Service

ArcGIS Server in the Cloud ESRI on Amazon Web Services

Windows

VM

Windows

GIS DataBrowser

Amazon Web Services

VM

ArcGIS Server

GIS

Data

Amazon Web Services

ArcGIS Server in the Cloud Client access from a browser

REST/SOAP

ESRI Customer Code

JavaScript Library

SilverlightLibrary

FlexLibrary

ArcGISServer

Browser

ArcGIS Spatial Data ServiceESRI on the Windows Azure Platform

VM

Windows Azure

VM

SQL Azure

GIS DataClient

Windows Azure Platform

ArcGISSpatial Data

Service

Conclusion

Cloud platforms are here

– They’re a new foundation for innovation

A new world is unfolding

– Prepare to be part of it

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 many events and conferences on five continents, and his seminars have been attended by tens of thousands of IT decision makers, 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 © 2010 David Chappell

Chappell & Associates

www.davidchappell.comSOAP/WS-*