Introduzione Al Cloud Computing a Simple Cloud Application
Total Page:16
File Type:pdf, Size:1020Kb
Università degli Studi di Roma “Tor Vergata” Dipartimento di Ingegneria Civile e Ingegneria Informatica Introduzione al Cloud Computing Corso di Sistemi Distribuiti e Cloud Computing A.A. 2016/17 Valeria Cardellini A simple cloud application 1 • A very simple cloud computing application: video playback • How to scale? • “Classic” solution: multithreaded application that exploits multicore parallelism • Cons: – Design can be complex – Single failure impacts many users Valeria Cardellini - SDCC 2016/17 1 A simple cloud application (2) 2 • A simpler cloud-hosted solution: a single- threaded video server instantiated once per user and running in a virtual machine • Pros: – Dramatically simpler design – If a player crashes, only a single user is impacted Valeria Cardellini - SDCC 2016/17 2 The real problem: scale and complexity • How to realize a system with the following requirements?" – Million requests per day to serve" – Increase/decrease in the request rate of one order of magnitude (or even more) in a quite short period" – Exabytes to store (1 EB = 260 = 1018 bytes)" • There is a problem of scale of services! • And scale changes every well known problem in computer research and industry Valeria Cardellini - SDCC 2016/17 3 A taste of scale: scenario in 2016 • More than 2G smartphone users • More than 3.4G Internet users • Facebook: 1.71G active users (+41% wrt 2012) • iTunes: 2M available apps, over 140G apps downloaded from 2008 • YouTube: over 1G users, 300 hours of video uploaded every minute, over 6G hours of video watched each month • Twitter: about 1G of accounts and 313M active users (100M daily active users), 500M tweets per day • Akamai: 15-30% of the world’s Web traffic, delivers more than 25Tbps daily • Google: 5.5G search queries daily (10K in 1998!), over 2T per year • WhatsApp: 1G monthly active users, 30G messages daily, 1.6G photos daily, 200M voice messages daily • Dropbox: 500M registered users, 1.2G files saved daily, 4K files edited every second • Spotify: 100M active users, 30M songs • Shazam: 120M monthly active users • Netflix: over 70M worldwide subscribers, 36% peak downstream traffic in US Valeria Cardellini - SDCC 2016/17 4 Some “old” and partial answers • Utility computing • On-demand computing • Grid computing • Autonomic computing • Software as a Service (SaaS) – An “old” idea: application delivery on Internet • More recently: XaaS, where X=[Hardware, Infrastructure, Platform, Service, Business Process…] – HaaS: Hardware as a Service – IaaS: Infrastructure as a Service – PaaS: Platform as a Service – HuaaS: Human as a Service (including crowdsourcing) Valeria Cardellini - SDCC 2016/17 5 Some “old” and partial answers (2) • Some old definitions used by IT companies – Pay-as-you-go (Sun) – Adaptive enterprise (HP) – E-business on demand (IBM) – Elastic computing cloud (Amazon) • … before cloud computing (2006) • Many definitions: a transition period – Difficult to see where the cloud paradigm would have taken us in the long term • Now the picture is clearer – The cloud represents one step towards the solution of the scale problem Valeria Cardellini - SDCC 2016/17 6 The origin: from 4 fundamental utilities… • Water … to computing as the • Gas fifth utility • Electricity • Telephony/Network Valeria Cardellini - SDCC 2016/17 7 Utility computing • Utility computing: la potenza dei calcolatori e le applicazioni possono essere vendute secondo il modello economico dell’utilità (utility) – Adozione del modello economico del servizio – Illusione di avere a disposizione risorse infinite – Tariffazione di tipo pay-per-use e a grana fine (ad es. su base oraria) • Ma la vision “computer utility” non è una idea nuova! • 1961: John McCarthy – “If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility... The computer utility could become the basis of a new and important industry.” Valeria Cardellini - SDCC 2016/17 8 Utility computing (2) • 1969: Leonard Kleinrock, progetto ARPANET – “As of now, computer networks are still in their infancy, but as they grow up and become sophisticated, we will probably see the spread of “computer utilities”, which, like present electric and telephone utilities, will service individual homes and offices across the country.” • Alcune ridefinizioni di computer – 1984: John Gage, Sun Microsystems • “The network is the computer” – 2008: David Patterson, Univ. Berkeley • “The data center is the computer. There are dramatic differences between of developing software for millions to use as a service versus distributing software for millions to run their PCs” Valeria Cardellini - SDCC 2016/17 9 Towards cloud computing • 2006: Jeff Bezos, Amazon: “Let us use our spare resource for making profit by offering them as services to the public” – In August 2006 Amazon launched Elastic Compute Cloud (EC2) and a paired online storage service called Simple Storage Service (S3) – Basic idea: let users rent data storage and computer server time from Amazon like a utility – Cloud computing was finally born • 2011: “Cloud is the computer” (Rajkumar Buyya, Univ. Melbourne) Valeria Cardellini - SDCC 2016/17 10 Paradigmi di computing e attributi: realizzare la vision “computer utility” Fonte: R. Buyya, “Market-Oriented Cloud Computing: …”, 2008. Un business di milioni di milioni di € • Web • Data Center • Utility Computing • Service Computing • Grid Computing + • P2P Computing • Cloud Computing • … − Accesso ubiquo − Affidabilità ? Paradigmi − Scalabilità ed elasticità − Comportamento autonomico − Scoperta dinamica − Composizione Attributi − Quality of Service (QoS) − Service Level Agreement (SLA) − … Valeria Cardellini - SDCC 2016/17 11 How do computing paradigms differ? Cluster computing Distributed computing • Tightly coupled • Loosely coupled • Homogeneous • Heterogeneous • Single System Image • Single administration Grid computing • Large scale • Cross-organizational • Geographical distribution • Distributed management Cloud computing • Provisioned on demand • Service guarantee • VMs and Web 2.0-based Valeria Cardellini - SDCC 2016/17 Source: R. Buyya 12 Popularity of computing paradigms" • Keywords comparison through Google Trends Search trends: Cluster computing, Grid computing, Distributed computing, Cloud computing" Valeria Cardellini - SDCC 2016/17 13 Cloud computing? • What does it mean? • How does it differ from other computing paradigms? • How does it extend other computing paradigms? Valeria Cardellini - SDCC 2016/17 14 Many technologies, concepts and ideas" Virtualization SaaS Storage Pricing Containers PaaS Provisioning on Utility computing demand Public Cloud Cloud bursting Scalability Security IT outsourcing No capital Virtual investments centers Private Cloud data Privacy & Trust IaaS Cloud federation Valeria Cardellini - SDCC 2016/17 15 Cloud computing Cloud computing “Cloud” è il simbolo grafico Il termine “computing” comprende: generalmente usato per - Computazione rappresentare Internet - Logica di coordinazione - Storage Il Cloud computing riguarda lo spostamento del computing da un singolo PC/data center ad Internet Valeria Cardellini - SDCC 2016/17 16 A myriad of definitions… • [Armbrust et al., 2009]: : “Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and software systems in the data centers that provide those services. The services themselves have long been referred to as Software as a Service (SaaS), so we use that term. The data center hardware and software is what we will call a Cloud. … Cloud computing has the following characteristics: (1) The illusion of infinite computing resources… (2) The elimination of an up-front commitment by cloud users… (3) The ability to pay for use… as needed.”" • [NIST, 2011]: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. (16th definition!)! • [Vaquero et al., 2009] Clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the infrastructure provider by means of customized SLAs. " Valeria Cardellini - SDCC 2016/17 17 … that share some essential characteristics • Pay-per-use pricing model" – No large up-front acquisition cost" • Broad network access" " • Rapid elasticity " – Elasticity: ability for customers to quickly request, receive, and later release as many resources as needed" – Allows for on-demand scale in/out! • Resources virtualization" – Resources: storage, processing, memory, network bandwidth, and even data centers" • On-demand self-service" – Human interaction with each service provider is not required" Valeria Cardellini - SDCC 2016/17 18 Key attributes of Cloud services • Shared, standard service • Solution packaged • Self-service • Elastic resource scaling • Elastic, use-based pricing • Published service interface/API Source: IDC's Worldwide IT Cloud Services Taxonomy, 2015 Valeria Cardellini - SDCC 2016/17 19 Cloud computing: perché ora? • Esperienza con data center