rackspace::solve nyc - the future of applications with ken cochrane, engineering manager at docker

28
KEN COCHRANE ENGINEERING | DOCKER | @KenCochrane The Future of Applications

Upload: rackspace

Post on 20-Aug-2015

2.237 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

KE N COC H RANE ENGINEER ING | DOCKER | @KenCochrane

The Future of Applications

Page 2: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

• The Matrix from Hell and the Need for Containers • Docker & Containers: how they work • Docker Overview and Docker Ecosystem • Current Usage and Adoption • Creating an Open Environment • Docker Roadmap & Business Model

Agenda

Page 3: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Apps Have Fundamentally Changed

~2000 2014

Long*lived Development*is*iterative*and*constant

Monolithic*and*built*on*a*single*stack

Built*from*loosely*coupled*components

Deployed*to*a*single*serverDeployed*to*a*multitude*of*servers

Page 4: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

User DBStatic website

Web frontend

QueueAnalytics DB

Background workers API endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client

Development VM

QA server

Public Cloud

Disaster recoveryContributor’s laptop

Production Servers

Production Cluster

Customer Data Center

Mul@plicity*of*Stacks

Mul@plicity*of*hardw

are*

environm

entsDo*services*and*apps*

interact*appropriately?Can*I*m

igrate*smoothly

*and*quickly?

The Problem in 2014

Page 5: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Static website ? ? ? ? ? ? ?Web frontend ? ? ? ? ? ? ?Background workers ? ? ? ? ? ? ?User DB ? ? ? ? ? ? ?Analytics DB ? ? ? ? ? ? ?Queue ? ? ? ? ? ? ?

Development VM

QA Server

Single Prod Server Onsite Cluster Public Cloud Contributor’s

laptopCustomer Servers

The Matrix From Hell

Page 6: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

An Inspiration…and Some Really Ancient History: Cargo Transport Pre-1960

Mul@plicity*of*Goo

dsMul@pilicity*of*m

etho

ds

for*transpor@ng

/storing

Do*I*w

orry*about*how*

goods*interact*(e.g.*coff

ee*beans*next*to*spices)

Can*I*transport*quickly*and*sm

oothly*(e.g.*from

*boat*to*train*to*truck)

Page 7: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.M

ul@plicity*of*Goo

dsMul@pilicity*of*m

etho

ds

for*transpor@ng

/storing

Do*I*w

orry*about*how*

goods*interact*(e.g.*coff

ee*beans*next*to*spices)

Can*I*transport*quickly*and*sm

oothly**(e.g.*from

*boat*to*train*to*truck)

…in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another

Solution: Intermodal Shipping Container

Page 8: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

• 90% of all cargo now shipped in a standard container • Order of magnitude reduction in cost and time to load and unload ships • 5000 ships deliver 200M containers per year

This Spawned an Intermodal Shipping Container Ecosystem

Page 9: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…

Let’s Create a Shipping Container System for Applications

Static website User DB Analytics DBQueueWeb frontend

Mul@plicity*of*Stacks

Mul@plicity*of*hardw

are*

environm

ents

Do*services*and*apps

*interact*appropriately?

Development VM

QA server

Public Cloud

Contributor’s !laptop

Production Cluster

Customer Data Center

…that can be manipulated using standard operations and run consistently on virtually any hardware platform

Can*I*migrate*sm

oothly*and*quickly

Page 10: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

And Eliminate the Matrix from Hell

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development VM

QA Server

Single Prod Server

Onsite Cluster

Public Cloud

Contributor’s Laptop

Customer Servers

Page 11: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Hypervisor (Type 2)Host OSServer

VM

Containers are isolated, but share OS kernel and, where appropriate, bins/libraries…result is significantly faster deployment, much less overhead, easier migration, faster restart

App*A

Bins/*Libs

Guest*OS

App*A’

Bins/*Libs

Guest*OS

App*B

Bins/*Libs

Guest*OS

App*A’

Host OS

Server

App*A

App*B

App*B’

App*B’

App*B’Container

Bins/Libs Bins/Libs

Step One: Create a Lightweight Container (vs. VMs)

Page 12: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

A set of slides from IBM: Comparing Docker (Blue) to VM (Red)

Page 13: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

•Container technology has been around for a while (c.f. LXC, Solaris Zones, BSD Jails) • But, their use was largely limited to

specialized organizations, with special tools & training. Containers were not portable

Type 1 Hypervisor Linux Containers docker

Step 2: Make the Containers Easy to Use, Standardized, Interoperable, Automatable

Page 14: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Step 2: cont.

With%Docker,%Containers%get%the%following:%•Ease*of**use,*tooling*

•ReTusable*components*

•Ability*to*run*on*any*Linux*server*today:*physical,*virtual,*VM,*cloud,*OpenStack,*+++*T (Stay*tuned*for*other*O/S’s)*

•Ability*to*move*between*any*of*the*above*in*a*maYer*of*secondsTno*modifica@on*or*delay*

•Ability*to*share*containerized*components*

•Interoperability*with*all*exis@ng*devops*tools*

•Self*contained*environment—no*dependency*hell*

•Tools*for*how*containers*work*together:*linking,*nes@ng,*discovery,*orchestra@on,*++

Page 15: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Step 3: Make Containers Super Lightweight

Bins/*Libs

App*A

App*Δ

*B/L

Every app, every copy of an app, and every slight modification of the app requires a new virtual server

App*A

VMs Containers

App*A

!!!

App*A

App*A’

Guest*OS

VMs

(No OS to take up space, resources,*or require restart)

Original AppNo OS. Can*Share bins/libs

Copy of AppCopy on write allows us to only save the diffs Between container A and container A’

Modified App

Guest*OS

Guest*OS

Bins/Libs

Bins/Libs

Bins/Libs

App*A

App*A

App*A’

Page 16: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

An Open Platform to Build, Ship, and Run Distributed Applications

Step 4: Build an Open Platform

Page 17: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

An Open Platform…

API

Engine Hub

open source software at the heart of the Docker platform 

cloud-based platform services for distributed applications

API

Page 18: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

An Open Platform…

API

Engine Hub

cloud-based platform services for distributed applications

API

open source software at the heart of the Docker platform 

Any App

• + 17K apps • + 9K projects

• Physical • Virtual cloud

Any Infrastructure

Page 19: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

…to Build, Ship, and Run

Build Ship

Run

Dev

QA

Source

Staging

DockerFile

Source Code Repository

TESTTEST

TESTTEST

TEST

Mac/Win Dev Machine

Doc

ker

Analytics DB

Users Collab

Provenance Policy

Docker Hub

Registries

Public Curated Private

Docker Hub API

Third Party Tools

QA Machine

Doc

ker

Doc

ker

Boot2Docker

Linux OS

Physical

Virtual

Cloud

Infrastructure Management

Infrastructure Management

GCE RAX IBM ++

Prod Machine Prod MachineProd Machine

Doc

ker

Doc

ker

Doc

ker

Doc

ker

Doc

ker

Doc

ker

VM VM VM

Doc

ker

Doc

ker

Doc

ker

Doc

ker

Doc

ker

Doc

ker

Linux OS Linux OS Linux OS

Page 20: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

…Distributed Applications

Data

User DB

Queue

Analytics DB

API Endpoint

Web Frontend

Data

Background Workers

Development VM

QA Server

Disaster Recovery

Contributor’s LaptopProduction Servers

Production Cluster

Customer Data Center

Public Cloud

Page 21: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Step 5: Build an Ecosystem

Official Repos & 14K+ Dockerized Apps

Community*• 500+ Contributors • 250+ Meetups on Docker • 6M Downloads • 10K Projects on GitHub

Support*• Enterprise Support • Robust Documentation • Implementation, Integration, Training

• Network of Partners

The Docker Platform Docker Engine Docker Hub

Partners

Content

Users

Build, Ship, and Run

Page 22: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Partner Ecosystem

Page 23: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Who is Using Docker?

And hundreds of others… these are just a sample of those who have published use cases

Page 24: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Step 6: Build Systems and Infrastructure to Take Advantage of This New Paradigm

BARE METAL SERVERS

API-drivenInstantly Available Highly SpecializedNo

Hypervisor

OnMetal

Page 25: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Conclusion

•Multiple forces are driving a reconsideration of how applications should be created, built, deployed, scaled, and managed

•We believe that the right approach is to decouple application management from infrastructure management

•Container based approach (vs. VM approach) provides right level of abstraction

• Enables infrastructure to be managed consistently and stably

Page 26: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

• Enables applications to be built flexibly and deployed flexibly • Provides greater degree of visibility, control, and management

of what runs where and what components are allowed • Massive cost, speed, efficiency savings • Docker is becoming the standard for containerization

Rackspace is a true leader in enabling this revolution!

Conclusion (cont.)

Page 27: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker

Learn More

Docker project:www.docker.com

Follow Docker on Twitter: @docker

Take the Docker interactive tutorial: www.docker.com/tryit/

Go to the Docker repository on GitHub: github.com/docker/docker

Go to a meetup: www.docker.com/community/

Page 28: Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineering Manager at Docker