Slide 1

Slide 1 text

D O C K E R + M E S O S S T L H A D O O P J U N E 2 0 1 4 S T E V E N B O R R E L L I @stevendborrelli steve@aster.is

Slide 2

Slide 2 text

A B O U T M E 2 0 1 4 F O U N D E D : O R G A N I Z E R O F S T L M A C H I N E L E A R N I N G A N D D O C K E R S T L F I R S T C O M P U T E R : @ S Y S T E M S E N G I N E E R I N G , H P C , B I G D A TA & C L O U D

Slide 3

Slide 3 text

Let’s talk about

Slide 4

Slide 4 text

I N F R A S T R U C T U R E T H E N E X T G E N E R A T I O N O F

Slide 5

Slide 5 text

Why should I care?

Slide 6

Slide 6 text

I N F R A S T R U C T U R E I S T H E F O U N D AT I O N O F T H E I N F O R M AT I O N E C O N O M Y

Slide 7

Slide 7 text

– M A R C A N D R E E S S E N “We are in the middle of a dramatic and broad technological and economic shift in which software companies are poised to take over large swathes of the economy.”

Slide 8

Slide 8 text

I N F R A S T R U C T U R E I S A C O M P E T I T I V E A D VA N TA G E

Slide 9

Slide 9 text

ƭ W R I T E T E S T D E P L O Y S P E E D + Q U A L I T Y O F S O F T WA R E D E V E L O P M E N T H A S B E C O M E C R I T I C A L

Slide 10

Slide 10 text

WHAT TRENDS ARE EMERGING?

Slide 11

Slide 11 text

WA R E H O U S E S C A L E C O M P U T I N G

Slide 12

Slide 12 text

I N S P I R E D B Y

Slide 13

Slide 13 text

GFS (2003) MapReduce (2004) Chubby (2006) BigTable (2006)

Slide 14

Slide 14 text

H O W D O E S G O O G L E R U N ?

Slide 15

Slide 15 text

APPLICATION CONTAINERS + DISTRIBUTED SCHEDULING H O W D O E S G O O G L E R U N ?

Slide 16

Slide 16 text

B U I L D I N G B L O C K S

Slide 17

Slide 17 text

C O N TA I N E R S PA C K A G E A P P L I C AT I O N S I N L I G H T W E I G H T V I RT U A L M A C H I N E S

Slide 18

Slide 18 text

D I S T R I B U T E D S C H E D U L I N G R U N W O R K L O A D S A C R O S S M U LT I P L E S E R V E R S

Slide 19

Slide 19 text

APPLICATION CONTAINERS + DISTRIBUTED SCHEDULING

Slide 20

Slide 20 text

Let’s start with containers

Slide 21

Slide 21 text

1.0 released last week!

Slide 22

Slide 22 text

W H Y D O C K E R ? Docker makes it easy to: Package Deploy Share Containerized Server Applications

Slide 23

Slide 23 text

Think: java -jar vs. ./configure; make install !

Slide 24

Slide 24 text

What’s the difference between containers and virtual machines (VMs)? !

Slide 25

Slide 25 text

V I RT U A L I Z AT I O N

Slide 26

Slide 26 text

1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix VirtualPC 1999 VMWare Workstation 2001 IBM AIX LPAR 2002 Xen 2006 Amazon EC2 2007 Sun Logical Domains 2007 Linux KVM 2007 InnoTek VirtualBox 2008 Microsoft Hyper-V H A R D WA R E V I RT U A L I Z AT I O N

Slide 27

Slide 27 text

C O N TA I N E R S

Slide 28

Slide 28 text

P R O C E S S V I RT U A L I Z AT I O N 1979-1982 UNIX Chroot 1998 FreeBSD Jail 2001 Parallels Virtuozzo 2001 Linux-VServer 2005 Solaris Zones 2005 OpenVZ 2008 Linux LXC 2007+ PAAS: Heroku, Joyent, CloudFoundry 2013 Docker

Slide 29

Slide 29 text

(LINUX) KERNEL LAYER FS CGROUPS NAMESPACES LIBCONTAINER DOCKER LXC D O C K E R A R C H I T E C T U R E

Slide 30

Slide 30 text

N A M E S PA C E S V S . C G R O U P S Namespaces provide isolation: • pid (processes) • net (network interfaces, routing...) • ipc (System V IPC) • mnt (mount points, filesystems) • uts (hostname) • user (UIDs) Control groups control resources: • cpu (CPU shares) • cpusets (limit processes to a CPU) • memory (swap, dirty pages) • blockio (throttle reads/writes) • devices • net_cls, net_prio: control packet class and priority


Slide 31

Slide 31 text

Differences between containers and virtual machines ! • Weaker isolation in containers • Containers run near-native speed for CPU/IO • Cached containers launch in around 0.1 second (libcontainer) • Less memory overhead

Slide 32

Slide 32 text

EXAMPLES

Slide 33

Slide 33 text

R U N N I N G A C O N TA I N E R Start a container: Mount host filesystems:

Slide 34

Slide 34 text

Example: run Zookeeper + Exhibitor Host ports will be dynamically allocated by docker Port 2181 on host will be mapped to 2181 on container M A P P I N G P O RT S

Slide 35

Slide 35 text

New in 0.11, allows a container to access host adapters: D I R E C T H O S T N E T W O R K Port 8080 on the container is 8080 on the host:

Slide 36

Slide 36 text

It’s easy to build containers

Slide 37

Slide 37 text

J AVA D O C K E R F I L E

Slide 38

Slide 38 text

No we can build a Tomcat container from the Java container

Slide 39

Slide 39 text

T O M C AT D O C K E R F I L E

Slide 40

Slide 40 text

L AY E R E D F S I S A G R A P H

Slide 41

Slide 41 text

It’s easy to share containers

Slide 42

Slide 42 text

D O C K E R R E G I S T RY S E A R C H P U S H P U L L

Slide 43

Slide 43 text

D O C K E R S U M M A RY Easy to build, run & share containers Rapidly expanding ecosystem Better performance vs. VMs Layered filesystem gives us git-like control of images. Reduces complexity of system builds

Slide 44

Slide 44 text

We’ve packaged up all our apps into containers! ! Now how do we run them?

Slide 45

Slide 45 text

D I S T R I B U T E D S C H E D U L I N G

Slide 46

Slide 46 text

Launches 2 Billion containers/week ~3,300/second Powered by:

Slide 47

Slide 47 text

Can I implement Google-style computing?

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

B E R K E L E Y D ATA A N A LY T I C S S TA C K ( B D A S )

Slide 51

Slide 51 text

Fault Tolerant Massively Scalable Mix Diverse Workloads Efficient/Optimal Resource Utilization D E S I R E D C H A R A C T E R I S T I C S

Slide 52

Slide 52 text

S TAT I C PA R T I T I O N I N G C U R R E N T LY, A L M O S T E V E RY O N E U S E S

Slide 53

Slide 53 text

M I X W O R K L O A D S W I T H M E S O S

Slide 54

Slide 54 text

I N C R E A S E U T I L I Z AT I O N W I T H M E S O S

Slide 55

Slide 55 text

Mesos uses Zookeeper for High Availability

Slide 56

Slide 56 text

H I G H LY AVA I L A B L E A R C H I T E C T U R E

Slide 57

Slide 57 text

Mesos is a Two-Level Scheduler

Slide 58

Slide 58 text

Frameworks Manage Jobs Mesos Tracks and Provides Resources

Slide 59

Slide 59 text

R U N M U LT I P L E F R A M E W O R K S App-specific: Generic:

Slide 60

Slide 60 text

R U N M U LT I P L E F R A M E W O R K S

Slide 61

Slide 61 text

+

Slide 62

Slide 62 text

Package Apps into Containers Run Containers at Scale N AT U R A L C O M P L E M E N T S

Slide 63

Slide 63 text

M E S O S D O C K E R I N T E G R AT I O N Mesos Uses Cgroups for Isolation Fall 2013: External Script to shell out to Docker June 2014 0.19: Native Container Support Two Docker executors:

Slide 64

Slide 64 text

! {! "cmd": "env && sleep 300",! "constraints": [! ["attribute", "OPERATOR", "value"]! ],! "container": {! "image": "docker:///dockeruser/oracle-java7",! "options": ["-v", "/etc/config:/etc/config:ro"]! },! "cpus": 2,! "env": {! "LD_LIBRARY_PATH": "/usr/local/lib/myLib"! }! } L A U N C H I N G D O C K E R C O N TA I N E R S W I T H M A R AT H O N

Slide 65

Slide 65 text

D O C K E R S U P P O RT F O R M E S O S Prototype Mesos Backend Planned Support

Slide 66

Slide 66 text

T O O L S C A M B R I A N E X P L O S I O N

Slide 67

Slide 67 text

Docker has a rapidly growing ecosystem Existing software is being rewritten to support Docker containers D O C K E R I S D R I V I N G N E W T O O L I N G

Slide 68

Slide 68 text

Docker-centric Big Data Pre-Docker PAAS D O C K E R S U P P O R T I N G I N F R A S T R U C T U R E

Slide 69

Slide 69 text

Service Discovery Dynamic Proxies Linking Containers Storage N E W M O D E L S E M E R G I N G

Slide 70

Slide 70 text

N E X T S T E P S Dockerize your applications, run them using simple scripts Use Mesos as a backend for Spark Start running apps via Marathon & Chronos Integrate containers into your build process

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

Docker/Mesos/AWS Professional Services ! Jenkins Plugin for Docker & Mesos ! Prebuilt Amazon AMI ! API to spin up clusters on AWS http://aster.is

Slide 73

Slide 73 text

I M A G E C R E D I T S • "U.S. Army Photo", number 163-12-62. Patsy Simmers, et. al holding computer parts: http://ftp.arl.army.mil/ ftp/historic-computers/ • “U.S. Army Photo”, Two women operating the ENIAC’s: http://ftp.arl.army.mil/ftp/historic-computers/png/ eniac7.png • Factory: http://commons.wikimedia.org/wiki/File:Float_Glass_Unloading.jpg • Distributed Scheduling: http://s1.reutersmedia.net/resources/r/? m=02&d=20120619&t=2&i=620575938&w=&fh=&fw=&ll=700&pl=390&r=2012-06-19T114519Z_02_GM1E86I1 B6M01_RTRRPP_0_CHINA • Mesos Paper: http://static.usenix.org/event/nsdi11/tech/full_papers/Hindman_new.pdf • Static Workloads/Mix Workloads/Mix Utilization, Ben Hindman, http://www.slideshare.net/dotCloud/high- speed-shipping-lanes-how-containers-are-revolutionizing-distributed-computing-at-scale • Cambrian Explosion: http://www.bio.miami.edu/dana/pix/cambrian_explosion.jpg