550 likes | 839 Views
1. From http://geekandpoke.typepad.com. 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).
E N D
1 From http://geekandpoke.typepad.com
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)
Outline • Cloud computing • The three-tier architectural style & Google AppEngine
Recent Trends Amazon S3 (March 2006) Cloud computing Amazon EC2 (August 2006) Salesforce AppExchange (March 2006) Grid computing Virtualization Google App Engine (April 2008) Facebook Platform (May 2007) Microsoft Azure (Oct 2008)
Gartner Hype Cycle* Cloud Computing * From http://en.wikipedia.org/wiki/Hype_cycle
Blind men and an Elephant CLOUD COMPUTING
300 Power and cooling costs Management and admin costs 250 New system spend 200 150 100 50 $0B 1997 1999 2001 2004 1996 1998 2000 2002 2003 2005 2006 2007 2008 2009 2010 A crisis of complexity. The need for progress is clear. Global Annual Server Spending (IDC) Uncontrolled management and energy costs Steady CAPEX spend To make progress, delivery organizations must address the server, storage and network operating cost problem, not just CAPEX Source: IBM Corporate Strategy analysis of IDC data
“Cloud” is: Cloud enables: • Anew consumption and delivery model inspired by consumer Internet services. • Self-service • Sourcing options • Economies-of-scale Cloud Services Cloud Computing Model Multiple Types of Clouds will co-exist: “Cloud” represents: • The Industrializationof Deliveryfor IT supported Services • Private, Public and Hybrid • Workload and/or Programming Model Specific
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. Usage Tracking Web 2.0 Business Services IT Services End User Focused Service Automation & SOA Virtualization
“Cloud” is: Cloud enables: • A new consumption and delivery model inspired by consumer Internet services. • Self-service • Sourcing options • Economies-of-scale Cloud Services Cloud Computing Model Multiple Types of Clouds will co-exist: “Cloud” represents: • The Industrializationof Deliveryfor IT supported Services • Private, Public and Hybrid • Workload and/or Programming Model Specific
Key Technology: Virtualization App App App JVM JVM JVM OS/JVM Managent Hardware Virtualized Stack App App App App App App OS OS OS Operating System Hypervisor Hardware Hardware Traditional Stack Virtualized Stack
Today there are three primary delivery models that companies are implementing for cloud Enterprise Traditional Enterprise IT Public Clouds Private Cloud Hybrid Cloud Private Cloud IT 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 Public Cloud IT activities/functions are provided “as a service,” over the Internet • Key features: • Scalability • Automatic/rapid provisioning • Standardized offerings • Consumption-based pricing. • Multi-tenancy 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
Elements that Drive Cloud Efficiency and Economics Infrastructure Leverage Virtualization of Hardware Drives lower capital requirements Virtualized environments only get benefits of scale if they are highly utilized Utilization of Infrastructure Clients who can “serve themselves” require less support and get services Self Service Labor Leverage Automation of Management Take repeatable tasks and automate More complexity = less automation possible = people needed Standardization of Workloads
Enterprise Benefits from Cloud Computing Capability From To Cloud accelerates business value across a wide variety of domains. Legacy environments Cloud enabled enterprise
“Cloud computing is simply a buzzword used to repackage grid computing and utility computing, both of which have existed for decades.” whatis.com Definition of Cloud Computing
“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 Ellison During Oracle’s Analyst Day From http://blogs.wsj.com/biztech/2008/09/25/larry-ellisons-brilliant-anti-cloud-computing-rant/
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 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 • Fluctuating demand • Highly standardized applications • Modular, independent applications • Unacceptably high costs Push factors 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)
27 From http://geekandpoke.typepad.com
Levels of abstraction Lower-level, More flexibility, More management Not scalable by default Higher-level, Less flexibility, Less management Automatically scalable 30 EC2 Azure AppEngine • 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 Force.com
Client Tier Web Client Web Client Web Client Web Server Tier Web Server / Presentation Logic Business Logic Tier Application Logic Data Management Tier Databases 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.
Client Tier Web Client Web Client Web Client Web Server Tier / Presentation Logic Business Logic Tier (your) Java / Python hosted application Data Management Tier BigTable Web Applications with Google AppEngine 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 applications • serving over 140M pageviews per day • over 200K developers • rwo supported languages: Python and Java
3-tiered applications engineered for scale and reliability .. • Slides
Differentiate between requests for static and dynamic content.
Request for static content • Defining static content
Request for dynamic content • Defining static content
Request for dynamic content The AppServer • Defining static content
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 AppServers
Use APIs to do things you don't want to do in your runtime, such as... Calls are blocking! Requests accessing APIs