Cloud computing (and Google AppEngine) material adapted from slides by Indranil Gupta, Jimmy Lim,...

Post on 22-Dec-2015

215 views 0 download

Tags:

transcript

Cloud computing

(and Google AppEngine)

material adapted from slides by Indranil Gupta, Jimmy Lim, Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet, Google Distributed Computing Seminar, 2007 (licensed under Creation Commons Attribution 3.0 License)

2

Source: http://www.free-pictures-photos.com/

What is Cloud Computing?

4

A new consumption and delivery model inspired by consumer Internet services.

Private, Public and Hybrid

Workload and/or Programming Model Specific

The Industrialization of Delivery for IT supported Services

Cloud Services

Cloud Computing Model

Self-service Sourcing options Economies-of-scale

Multiple Types of Clouds will co-exist:

“Cloud” represents:

Cloud enables:“Cloud” is:

Different ‘Could’ Delivery Models Infrastructure as a service (IaaS)

Utility computing Why buy machines when you can rent cycles? Examples: Amazon’s EC2, GoGrid, AppNexus

Platform as a Service (PaaS) Provides an specialized API. App developer takes

care of the implementation Example: Google App Engine

Software as a Service (SaaS) Provides the whole application Example: Gmail, GoogleDocs, SalesForce

Key Enabling Technology: Virtualization

Hardware

Operating System

App App App

Traditional StackHardware

OS

App App App

Hypervisor

OS OS

Virtualized Stack

Hardware

JVM

App App App

OS/JVM Managent

JVM JVM

Virtualized Stack

7

Steady CAPEX spend

Global Annual Server Spending (IDC)

Source: IBM Corporate Strategy analysis of IDC data

Uncontrolled management and energy costs

To make progress, delivery organizations must address the server, storage and network operating cost problem, not just CAPEX

$0B

50

100

150

200

250

300

1996

1997

1998

1999

2000

2001

2002

2003

2004

2005

2006

2007

2008

2009

2010

New system spend Management and admin costsPower and cooling costs

What drives this?

"push factors" for and "barriers" against cloud adoption for each workload type

Push factors

Fluctuating demand Highly standardized

applications Modular,

independent applications

Unacceptably high costs

Barriers

Data privacy or regulatory and

compliance issues High level of Internal

control required Accessibility and

reliability are a concern

Cost is not a concern

Source: IBM Market Insights, Cloud Computing Research, July 2009. n=1,090

Trade-off: value vs. risk of migration

Is cloud computing really new?

“The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do. […]

The computer industry is the only industry that is more fashion-driven than women’s fashion.

Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop?”

“The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do. […]

The computer industry is the only industry that is more fashion-driven than women’s fashion.

Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop?”

Larry EllisonDuring Oracle’s Analyst Day

From http://blogs.wsj.com/biztech/2008/09/25/larry-ellisons-brilliant-anti-cloud-computing-rant/ 11

Is cloud computing really new? Yes, and no.

Cloud computing is a new consumption and delivery model inspired by consumer Internet services. Cloud computing exhibits the following 5 key characteristics:

•On-demand self-service •Ubiquitous network access•Location independent resource pooling•Elasticity•Pay per use

While the technology is not new,

the end user focus of self-service, self-management leveraging these technologies is new.

Virtualization ServiceAutomation & SOA

UsageTracking Web 2.0

End User Focused

Three-tier architectures and Google AppEngine

Traditional WebApplications:

N-Tier Style Separation of concerns:

Presentation, business and data handling logic are clearly partitioned in different tiers.

Synchronous communication: Communications between tiers is synchronous request-reply. Each tier waits for a response from the other tier before proceeding.

Flexible deployment: There are no restrictions on how a multi-tier application is deployed. All tiers could run on the same machine, or each tier may be deployed on its own machine.

Databases

Application Logic

Web Server / Presentation Logic

Web Client

Web Client

Web Client

Client Tier

Web ServerTier

Business Logic Tier

Data Management Tier

Web Applications with Google AppEngine

BigTable

(your) Java / Python hosted application

(your) Presentation Logic

Web Client

Web Client

Web Client

Client Tier

Web ServerTier

Business Logic Tier

Data Management Tier

Hosting Server

What do you get? (using Google

AppEngine)Simplified (Web Application)

development

Scalability Reliability

▪ (by leveraging Google infrastructure )

A view behind the curtains …

AppServers

Runs your code (e.g., servlet) Restricted JVM environment

▪ Threads, security manager, file-access read only, new connections, reflection

Enforces Isolation Keeps apps safe from each other

Many applications, many concurrent requests Smaller footprint

Stateless! Allows for scheduling flexibility

Time bound!

Service API requests to access to other services

Persistency

Across requests Session Memcache Datastore

No relational model!New API.(compared to databases)

What consistency model?

C-A-P choose two

C

A P

Fox&Brewer“CAP Theorem” consistency

Availability Partition-resilience

Claim: every distributed system is on one side of the triangle.

CA: available, and consistent, unless there is a partition.

AP: a reachable replica provides service even in a partition, but may be inconsistent.

CP: always consistent, even in a partition, but a reachable replica may deny service without agreement of the others (e.g., quorum).