The Rise of Cloud Computing Systems

Similar documents
Data Centers and Cloud Computing. Data Centers

Distributed File Systems

The Google File System

Big Data With Hadoop

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Hadoop Ecosystem B Y R A H I M A.

What Is Datacenter (Warehouse) Computing. Distributed and Parallel Technology. Datacenter Computing Application Programming

CS2510 Computer Operating Systems

CS2510 Computer Operating Systems

6.S897 Large-Scale Systems

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 14

Improving MapReduce Performance in Heterogeneous Environments

Big Data and Apache Hadoop s MapReduce

Jeffrey D. Ullman slides. MapReduce for data intensive computing

Hadoop Architecture. Part 1

Introduction to Big Data! with Apache Spark" UC#BERKELEY#

Data Centers. Mendel Rosenblum. CS142 Lecture Notes - Data centers

Distributed File Systems

Data-Intensive Computing with Map-Reduce and Hadoop

Hadoop Distributed File System. T Seminar On Multimedia Eero Kurkela

Distributed Systems. Lec 2: Example use cases: Cloud computing, Big data, Web services

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl

Cloud Computing using MapReduce, Hadoop, Spark

What is Big Data? Concepts, Ideas and Principles. Hitesh Dharamdasani

Snapshots in Hadoop Distributed File System

Introduction to Cloud Computing

Facebook: Cassandra. Smruti R. Sarangi. Department of Computer Science Indian Institute of Technology New Delhi, India. Overview Design Evaluation

Hadoop: A Framework for Data- Intensive Distributed Computing. CS561-Spring 2012 WPI, Mohamed Y. Eltabakh

A programming model in Cloud: MapReduce

How To Handle Big Data With A Data Scientist

Assignment # 1 (Cloud Computing Security)

NoSQL Data Base Basics

Big Table A Distributed Storage System For Data

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 15

- Behind The Cloud -

Challenges for Data Driven Systems

CSE-E5430 Scalable Cloud Computing Lecture 2

Load Rebalancing for File System in Public Cloud Roopa R.L 1, Jyothi Patil 2

Application Development. A Paradigm Shift

Cloud Computing at Google. Architecture

How To Build Cloud Storage On Google.Com

Apache Hadoop. Alexandru Costan

Designs, Lessons and Advice from Building Large Distributed Systems. Jeff Dean Google Fellow

Managing large clusters resources

Big Systems, Big Data

Seminar Presentation for ECE 658 Instructed by: Prof.Anura Jayasumana Distributed File Systems

Big data management with IBM General Parallel File System

Big Data and Hadoop with components like Flume, Pig, Hive and Jaql

Future Prospects of Scalable Cloud Computing

Comparative analysis of Google File System and Hadoop Distributed File System

Parallel Processing of cluster by Map Reduce

Introduction to Cloud Computing

Dell In-Memory Appliance for Cloudera Enterprise

Distributed Systems. Tutorial 12 Cassandra

From GWS to MapReduce: Google s Cloud Technology in the Early Days

Accelerating and Simplifying Apache

Object Storage: A Growing Opportunity for Service Providers. White Paper. Prepared for: 2012 Neovise, LLC. All Rights Reserved.

Hadoop. Sunday, November 25, 12

Cloud Computing. Adam Barker

Parallel Programming Map-Reduce. Needless to Say, We Need Machine Learning for Big Data

A STUDY ON HADOOP ARCHITECTURE FOR BIG DATA ANALYTICS

Large scale processing using Hadoop. Ján Vaňo

Big Data. White Paper. Big Data Executive Overview WP-BD Jafar Shunnar & Dan Raver. Page 1 Last Updated

Design and Evolution of the Apache Hadoop File System(HDFS)

CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop)

Cloud Computing. Lecture 24 Cloud Platform Comparison

Apache Hadoop FileSystem and its Usage in Facebook

International Journal of Advance Research in Computer Science and Management Studies

There's Plenty of Room in the Cloud

Fault Tolerance in Hadoop for Work Migration

Big Data Processing in the Cloud. Shadi Ibrahim Inria, Rennes - Bretagne Atlantique Research Center

DATA MINING WITH HADOOP AND HIVE Introduction to Architecture

The Google File System

Zadara Storage Cloud A

Distributed File Systems

Massive Data Storage

A Study on Workload Imbalance Issues in Data Intensive Distributed Computing

Efficient Metadata Management for Cloud Computing applications

Alternatives to HIVE SQL in Hadoop File Structure

Hadoop: Embracing future hardware

Hadoop Distributed File System. Dhruba Borthakur Apache Hadoop Project Management Committee June 3 rd, 2008

Google File System. Web and scalability

CS246: Mining Massive Datasets Jure Leskovec, Stanford University.

MASSIVE DATA PROCESSING (THE GOOGLE WAY ) 27/04/2015. Fundamentals of Distributed Systems. Inside Google circa 2015

Hadoop & its Usage at Facebook

Systems Engineering II. Pramod Bhatotia TU Dresden dresden.de

Introduction to Hadoop

Highly available, scalable and secure data with Cassandra and DataStax Enterprise. GOTO Berlin 27 th February 2014

Resource Scalability for Efficient Parallel Processing in Cloud

Hadoop. MPDL-Frühstück 9. Dezember 2013 MPDL INTERN

EXPERIMENTATION. HARRISON CARRANZA School of Computer Science and Mathematics

BIG DATA TRENDS AND TECHNOLOGIES

Hadoop Distributed File System (HDFS) Overview

BIG DATA USING HADOOP

Introduction to Cloud : Cloud and Cloud Storage. Lecture 2. Dr. Dalit Naor IBM Haifa Research Storage Systems. Dalit Naor, IBM Haifa Research

Welcome to the unit of Hadoop Fundamentals on Hadoop architecture. I will begin with a terminology review and then cover the major components

How To Scale Out Of A Nosql Database

Introduction to Hadoop HDFS and Ecosystems. Slides credits: Cloudera Academic Partners Program & Prof. De Liu, MSBA 6330 Harvesting Big Data

Transcription:

The Rise of Cloud Computing Systems Jeff Dean Google, Inc. (Describing the work of thousands of people!) 1

Utility computing: Corbató & Vyssotsky, Introduction and Overview of the Multics system, AFIPS Conference, 1965. Picture credit: http://www.multicians.org/ 2

3

4

5

How Did We Get to Where We Are? Prior to mid 1990s: Distributed systems emphasized: modest-scale systems in a single site (Grapevine, many others), as well as widely distributed, decentralized systems (DNS) 6

Adjacent fields High Performance Computing: Heavy focus on performance, but not on fault-tolerance Transactional processing systems/database systems: Strong emphasis on structured data, consistency Limited focus on very large scale, especially at low cost 7

Caveats Very broad set of areas: Can t possible cover all relevant work Focus on few important areas, systems, and trends Will describe context behind systems with which I am most familiar 8

What caused the need for such large systems? Very resource-intensive interactive services like search were key drivers Growth of web from millions to hundreds of billions of pages and need to index it all, and search it millions and then billions of times per day with sub-second latencies 9

A Case for Networks of Workstations: NOW, Anderson, Culler, & Patterson. IEEE Micro, 1995 Cluster-Based Scalable Network Services, Fox, Gribble, Chawathe, Brewer, & Gauthier, SP 1997. Picture credit: http://now.cs.berkeley.edu/ and http://wikieducator.org/images/2/23/inktomi.jpg 10

My Vantage Point Joined DEC WRL in 1996 around launch of 11 Picture credit: http://research.microsoft.com/en-us/um/people/gbell/digital/timeline/1995-2.htm

My vantage point, continued: Google, circa 1999 Early Google tenet: Commodity PCs give high perf/$ Commodity components even better! Aside: use of cork can land your computing platform in the Smithsonian 12 Picture credit: http://americanhistory.si.edu/exhibitions/preview-case-american-enterprise

At Modest Scale: Treat as Separate Machines for m in a7 a8 a9 a10 a12 a13 a14 a16 a17 a18 a19 a20 a21 a22 a23 a24; do ssh -n $m "cd /root/google; for j in "`seq $i $[$i+3]`'; do j2=`printf %02d $j`; f=`echo '$files' sed s/bucket00/bucket$j2/g`; fgrun bin/buildindex $f; done' & i=$[$i+4]; done What happened to poor old a11 and a15? 13

At Larger Scale: Becomes Untenable 14

Typical first year for a new Google cluster (circa 2006) ~1 network rewiring (rolling ~5% of machines down over 2-day span) ~20 rack failures (40-80 machines instantly disappear, 1-6 hours to get back) ~5 racks go wonky (40-80 machines see 50% packetloss) ~8 network maintenances (4 might cause ~30-min random connectivity losses) ~12 router reloads (takes out DNS and external vips for a couple minutes) ~3 router failures (have to immediately pull traffic for an hour) ~dozens of minor 30-second blips for DNS ~1000 individual machine failures ~thousands of hard drive failures slow disks, bad memory, misconfigured machines, flaky machines, etc. Long distance links: wild dogs, sharks, dead horses, drunken hunters, etc. Reliability Must Come From Software 15

A Series of Steps, All With Common Theme: Provide Higher-Level View Than Large Collection of Individual Machines Self-manage and self-repair as much as possible... 16

First Step: Abstract Away Individual Disks Distributed file system... 17

Long History of Distributed File Systems Xerox Alto (1973), NFS (1984), many others: File servers, distributed clients AFS (Howard et al. 88): 1000s of clients, whole file caching, weakly consistent xfs (Anderson et al. 95): completely decentralized Petal (Lee & Thekkath, 95), Frangipani (Thekkath et al., 96): distributed virtual disks, plus file system on top of Petal 18

Google File System (Ghemawat, Gobioff, & Leung, SP 03) Centralized master manages metadata 1000s of clients read/write directly to/from 1000s of disk serving processes Files chunks of 64 MB, each replicated on 3 different servers High fault tolerance + automatic recovery, high availability GFS file system clients Metadata ops Huge I/O bandwidth Master Distributed file system... 19

Disks in datacenter basically self-managing 20

Successful design pattern: Centralized master for metadata/control, with thousands of workers and thousands of clients 21

Once you can store data, then you want to be able to process it efficiently Large datasets implies need for highly parallel computation One important building block: Scheduling jobs with 100s or 1000s of tasks 22

Multiple Approaches Virtual machines Containers : akin to a VM, but at the process level, not whole 23

Virtual Machines Early work done by MIT and IBM in 1960s Give separate users their own executing copy of Reinvigorated by Bugnion, Rosenblum et al. in late 1990s simplify effective utilization of multiprocessor machines allows consolidation of servers Raw VMs: key abstraction now offered by cloud service providers 24

Cluster Scheduling Systems Goal: Place containers or VMs on physical machines handle resource requirements, constraints run multiple tasks per machine for efficiency handle machine failures Similar problem to earlier HPC scheduling and distributed workstation cluster scheduling systems e.g. Condor [Litzkow, Livny & Mutkow, 88] 25

Many Such Systems Proprietary: Borg [Google: Verma et al., published 2015, in use since 2004] (unpublished predecessor by Liang, Dean, Sercinoglu, et al. in use since 2002) Autopilot [Microsoft: Isaard et al., 2007] Tupperware [Facebook, Narayanan slide deck, 2014] Fuxi [Alibaba: Zhang et al., 2014] Open source: Hadoop Yarn Apache Mesos [Hindman et al., 2011] Apache Aurora [2014] Kubernetes [2014] 26

Tension: Multiplexing resources & performance isolation Sharing machines across completely different jobs and tenants necessary for effective utilization But leads to unpredictable performance blips Isolating while still sharing Memory ballooning [Waldspurger, DI 2002] Linux containers... Controlling tail latency very important [Dean & Barroso, 2013] Especially in large fan-out systems 27

Higher-Level Computation Frameworks Give programmer a high-level abstraction for computation Map computation automatically onto a large cluster of machines 28

MapReduce [Dean & Ghemawat, DI 2004] simple Map and Reduce abstraction hides messy details of locality, scheduling, fault tolerance, dealing with slow machines, etc. in its implementation makes it very easy to do very wide variety of large-scale computations Hadoop - open source version of MapReduce 29

Succession of Higher-Level Computation Systems Dryad [Isard et al., 2007] - general dataflow graphs Sawzall [Pike et al. 2005], PIG [Olston et al. 2008], DryadLinq [Yu et al. 2008], Flume [Chambers et al. 2010] higher-level languages/systems using MapReduce/Hadoop/Dryad as underlying execution engine Pregel [Malewicz et al., 2010] - graph computations Spark [Zaharia et al., 2010] - in-memory working sets... 30

Many Applications Need To Update Structured State With Low-Latency and Large Scale TBs to 100s of PBs of data keys 106, 108, or more reqs/sec Desires: Spread across many machines, grow and shrink automatically Handle machine failures quickly and transparently Often prefer low latency and high performance over consistency 31

Distributed Semi-Structured Storage Systems BigTable [Google: Chang et al. DI 2006] higher-level storage system built on top of distributed file system (GFS) data model: rows, columns, timestamps no cross-row consistency guarantees state managed in small pieces (tablets) recovery fast (10s or 100s of machines each recover state of one tablet) Dynamo [Amazon: DeCandia et al., 2007] versioning + app-assisted conflict resolution Spanner [Google: Corbett et al., 2012] wide-area distribution, supports both strong and weak consistency 32

Successful design pattern: Give each machine hundreds or thousands of units of work or state Helps with: dynamic capacity sizing load balancing faster failure recovery 33

The Public Cloud Making these systems available to developers everywhere 34

Cloud Service Providers Make computing resources available on demand through a growing set of simple APIs leverages economies of scale of large datacenters for anyone with a credit card at a large scale, if desired 35

Cloud Service Providers Amazon: Queue API in 2004, EC2 launched in 2006 Google: AppEngine in 2005, other services starting in 2008 Microsoft: Azure launched in 2008. Millions of customers using these services Shift towards these services is accelerating Comprehensiveness of APIs increasing over time 36

So where are we? 37

Amazon Web Services, Google Cloud Platform, Microsoft Azure Powerful web services BigTable, Dynamo, Spanner MapReduce, Dryad, Pregel,... Cluster Scheduling System Distributed file system... 38

What s next? Abstractions for interactive services with 100s of subsystems less configuration, much more automated operation, self-tuning, Systems to handle greater heterogeneity e.g. automatically split computation between mobile device and datacenters 39

Thanks for listening! Thanks to Ken Birman, Eric Brewer, Peter Denning, Sanjay Ghemawat, and Andrew Herbert for comments on this presentation 40