Download - s07-08
From http://geekandpoke.typepad.com 1
Cloud computing
Some 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)
Cloud computingThe three-tier architectural style &
Google AppEngine
3
Google App Engine(April 2008)
Microsoft Azure(Oct 2008)
Facebook Platform
(May 2007)
Amazon EC2(August 2006)
Amazon S3(March 2006)
SalesforceAppExchange(March 2006)
Grid computing
Virtualization
Cloud computing
5
Cloud Computin
g
* From http://en.wikipedia.org/wiki/Hype_cycle 6
7
What is Cloud Computing?
Source: http://www.free-pictures-photos.com/
10
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
A crisis of complexity. The need for progress is clear.
11
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:
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•Rapid 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
13
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:
Key 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
Enterprise
Today there are three primary delivery models that companies are implementing for cloud
Public CloudIT activities/functions are provided “as a service,” over the Internet Key features:
Scalability Automatic/rapid provisioning Standardized offerings Consumption-based pricing. Multi-tenancy
Traditional Enterprise
IT
Private CloudIT activities/functions are provided “as a service,” over an intranet, within the enterprise and behind the firewall Key features include:
Scalability Automatic/rapid provisioning Chargeback ability Widespread virtualization
Private CloudPublic Clouds
Hybrid Cloud
Source: IBM Market Insights, Cloud Computing Research, July 2009.
Different Computing 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) Give me nice API and take care of the
implementation Example: Google App Engine
Software as a Service (SaaS) Just run it for me! Example: Gmail
Virtualized environments only get benefits of scale if they
are highly utilized
Drives lower capital requirements
More complexity = less automation possible =
people needed
Take repeatable tasks and automateL
abo
r L
ever
age
Infr
astr
uct
ure
L
ever
age
Clients who can “serve themselves” require less support and get services
Elements that Drive Cloud Efficiency and Economics
Self Service
Automation of Management
Standardization of Workloads
Virtualization of Hardware
Utilization of Infrastructure
Enterprise Benefits from Cloud Computing
Server/Storage
Utilization10-20%
Self service NoneTest
ProvisioningWeeks
Change Managemen
tMonths
Release Managemen
tWeeks
Metering/Billing
Fixed cost model
Payback period for
new servicesYears
70-90%
Unlimited
Minutes
Days/Hours
Minutes
Granular
Months
Legacy environments Cloud enabled enterprise
Cloud accelerates business value across a wide variety of domains.
Capability From To
The skeptics
“Cloud computing is simply a buzzword used to repackage grid computing
and utility computing, both of which have existed for decades.”
“Cloud computing is simply a buzzword used to repackage grid computing
and utility computing, both of which have existed for decades.”
whatis.comDefinition of Cloud Computing
20
“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/ 21
Marc Benioff, head of salesforce.com “Cloud computing isn't just candyfloss
thinking – it's the future. If it isn't, I don't know what is. We're in it. You're going to see this model dominate our industry."
Is data really safe in the cloud? "All complex systems have planned and unplanned downtime. The reality is we are able to provide higher levels of reliability and availability than most companies could provide on their own," says Benioff
John Chambers, Cisco Systems’ CEO "a security nightmare.”
"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 is value vs. risk of migration
Workload characteristics are critical New workloads will emerge as cloud
makes them affordable (eg pervasive analytics, Smart Healthcare)
From http://geekandpoke.typepad.com 27
Grid vs. Cloud computing(A Grid computing
example)
Three-tier architectures and Google AppEngine
Levels of abstraction
Different levels of abstraction Instruction Set VM: Amazon EC2 ApplicationLevel VM: Google AppEngine
Similar to languages Higher level abstractions can be built on top of
lower ones
EC2 Azure AppEngineForce.com
Lower-level,More flexibility,More managementNot scalable by default
Higher-level,Less flexibility,
Less managementAutomatically scalable
30
Traditional WebApplications:
N-Tier Style Separation of concerns:
Presentation, business and data handling logic are clearly partitioned in different tiers.
Synchronous communications: 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
/ Presentation Logic
Web Client
Web Client
Web Client
Client Tier
Web ServerTier
Business Logic Tier
Data Management Tier
Hosting Server
Why use Google AppEngine?
Simplified (Web Application) development (through part of the application lifecycle) by leveraging Google infrastructure
▪ Scalability ▪ Reliability ▪ Functionality
Why use Google AppEngine? Simplified (Web Application) development
Implementation ▪ Simplified/integrated application monitoring and
logging▪ Simplified user authentication ▪ Tooling
Deployment / maintenance / and use ▪ No servers to setup – Apache, EJB containers, database▪ No server management / monitoring / upgrade ▪ Billing model: Pay per use
▪ Reduced upfront investment ▪ [Promise of] scalability▪ Monitoring and statistics▪ User authentication
Adoption (May 2009)
over 80K applicationsserving over 140M pageviews per
dayover 200K developers rwo supported languages: Python
and Java
A view behind the curtains …
A view behind the curtains …
3-tiered applications engineered for scale and reliability .. Slides
Life of an App Engine Request
Differentiate between requests for static and dynamic content.
Request for static content
Request for static content
Defining static content
Request for static content
Request for dynamic content
Defining static content
Request for dynamic content
Defining static content
Request for dynamic content
The AppServer
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
Requests accessing APIs
Use APIs to do things you don't want to do in your runtime, such as...
Calls are blocking!
Persistency
Across requests Session Memcache Datastore
The AppEngine Datastore
Based on BigTable http://labs.google.com/papers/
bigtable.html Replicated and fault tolerant
On commit: ≥3 machines Geographically distributed
No relational model!New API.
Benefits▪ No machines to manage or count▪ Integrated development/production
environment ▪ Use Google tools (e.g., Admin Console_▪ Scalable logging and aggregation mechanisms▪ Easy deployment
Some restrictions ▪ Small request footprint (implicit) ▪ Fast requests▪ Stateless requests ▪ Schemaless data model▪ [understand their impact and the reasons they
were added]
To remember
AppEngine: specialized platform for Web Applications unfit for general computing.
Support for part of lifecycle of a web application
Offers transparent access to scalable infrastructure You pay a price for the ‘infinite’ scalability
offered: constrains on your application ▪ stateless requests, schemaless data models, limits on
resource usage for each request.