diego container scheduler

69
Diego: Container Scheduler

Upload: hristo-iliev

Post on 21-Apr-2017

57 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Diego container scheduler

Diego: Container Scheduler

Page 2: Diego container scheduler

hello!Hristo Iliev

[email protected]

Page 3: Diego container scheduler
Page 4: Diego container scheduler

Gopher

Page 5: Diego container scheduler

DIEGO?DEA in Go

Gopher

Page 6: Diego container scheduler

SteerAmbush

Loot=

ManageScheduleEvacuate

Gopher

DEA in Go

Page 7: Diego container scheduler

1.Architecture

101

Page 8: Diego container scheduler

Responsibilities

Page 9: Diego container scheduler

Stage & Run apps

Responsibilities

Page 10: Diego container scheduler

Responsibilities

Stage & Run apps

DEA

App 1 App 2

App 3 App 1

App 2

Page 11: Diego container scheduler

Maps traffic to container

s

Responsibilities

Page 12: Diego container scheduler

ResponsibilitiesMaps

traffic to container

s

DEA

App 1 App 2

App 3 App 1

App 2

Router

Page 13: Diego container scheduler

ResponsibilitiesMaps

traffic to container

s

DEA

App 1 App 2

App 3 App 1

App 2

Router

Page 14: Diego container scheduler

Maps traffic to container

s Router

DEA

App 1

Responsibilities

Page 15: Diego container scheduler

CC: APIHM:

Eventual consistency

Responsibilities

Page 16: Diego container scheduler

CC: APIHM:

Eventual consistency

Actual state

App 1 App 2

App 3 App 1

App 2

Responsibilities

Page 17: Diego container scheduler

CC: APIHM:

Eventual consistency

Actual state

App 1 App 2

App 3 App 1

App 2

Desired state

App 2App 3

App 2

Responsibilities

Page 18: Diego container scheduler

CC: APIHM:

Eventual consistency

Actual state

App 1 App 2

App 3 App 1

App 2

Desired state

App 2App 3

App 2

Responsibilities

Page 19: Diego container scheduler

Communication

Responsibilities

Page 20: Diego container scheduler

DEA vs Diego

Page 21: Diego container scheduler

DEA vs Diego

Page 22: Diego container scheduler

DEA + HM✘ Manage✘ Schedule

DEA vs Diego

Diego✘ Manage✘ Schedule

Page 23: Diego container scheduler

2.Why?

What’s wrong with DEA?

Page 24: Diego container scheduler

Onsi Fakhouri(VP of Engineering for CF)

Diego: Re-envisioning the Elastic Runtime (CF Summit 2014)

https://www.youtube.com/watch?v=1OkmVTFhfLY

Page 25: Diego container scheduler

✘ Tight coupling✘ Separation of concern

Problems

Page 26: Diego container scheduler

✘ Tight coupling✘ Separation of concern

Hard to extend & test

Problems

Page 27: Diego container scheduler

✘ Triangular dependencies

Problems

Page 28: Diego container scheduler

✘ Triangular dependencies

Hard to extend & test

Consistency

Concurrency

Problems

Page 29: Diego container scheduler

✘ Orchestration

Consistency

Concurrency

Problems

Page 30: Diego container scheduler

✘ Coupling & Separation

✘ Triangular dependencies

✘ Orchestration

Hard to extend & test

Consistency

Concurrency

Problems

Page 31: Diego container scheduler

3.How

… was Diego made?

Page 32: Diego container scheduler

DEA History✘Health Manager

RubyEventual consistency

Page 33: Diego container scheduler

DEA History✘Health Manager

RubyEventual consistency

✘HM9000Goµ-servicesetcd

https://www.cloudfoundry.org/hm9000-ready-for-launch/

Page 34: Diego container scheduler

DEA History✘Health Manager

RubyEventual consistency

✘HM9000Goµ-servicesetcd

https://www.cloudfoundry.org/hm9000-ready-for-launch/

Page 35: Diego container scheduler

4.How

… can I use it?

Page 36: Diego container scheduler

Migration

DEA pool

App 1 App 2

App 3 App 1

App 2

Existing

Page 37: Diego container scheduler

Migration

DEA pool

App 1 App 2

App 3 App 1

App 2

Cell pool

App 4 App 5

App 4

New

Page 38: Diego container scheduler

Releases✘CF-Release

DEA pool

✘Diego-ReleaseCell poolModifies CF-Release

Page 39: Diego container scheduler

5.How

… does it work?

Page 40: Diego container scheduler

Eric malm(Diego Product Manager)

Diego Runtime Overview (CF Summit 2016)

https://www.youtube.com/watch?v=iv5EpheLLh0

Page 41: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

Apps

CC-Bridge Dependencies

bbs

etcd

cflinuxfs2

file-server

nsync

tps

garden

docker-app

cc-uploader

consul

stager

converger

rep

buildpack-app

windows-app

CC-Bridge Diego Core Dependencies

route-emitter

Routing-BridgeSSH

diego-sshdssh-proxy

SSH

auctioneer

Page 42: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

auctioneer

Routing-Bridge

Page 43: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

Page 44: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

Page 45: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

Page 46: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

Page 47: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

component discovery& coordination

Page 48: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

component discovery& coordination

CF Apps

Page 49: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

component discovery& coordination

CF Apps

Page 50: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

containerplacement &

lifecycle

auctioneer

Routing-Bridge

consistentdatastore

containerexecution

component discovery& coordination

CF Apps

Page 51: Diego container scheduler

https://www.youtube.com/watch?v=iv5EpheLLh0

bbs

etcd

garden

consul

converger

rep

CC-Bridge Diego CoreCC

Apps

Gorouter

SSH

CF Apps

containerplacement &

lifecycle

component discovery& coordination

consistentdatastore

containerexecution

auctioneer

Routing

Routing-Bridge

Page 53: Diego container scheduler

6.What

… else can I do?

Page 54: Diego container scheduler

Features✘ Files

Page 55: Diego container scheduler

Features✘ Files

Page 56: Diego container scheduler

Features✘ Files✘SSH

Page 57: Diego container scheduler

Features✘ Files✘SSH✘Tasks

Page 58: Diego container scheduler

Features✘ Files✘SSH✘Tasks✘Isolation segments

https://docs.google.com/document/d/1JPjKxo0JT5rqKZV1XtpydL6ehlyKIk7ipNWMCz2xyKE

Page 59: Diego container scheduler

Features✘ Files✘SSH✘Tasks✘Isolation segments

Compute

https://docs.google.com/document/d/1JPjKxo0JT5rqKZV1XtpydL6ehlyKIk7ipNWMCz2xyKE

Page 60: Diego container scheduler

Features✘ Files✘SSH✘Tasks✘Isolation segments

ComputeLogging

https://docs.google.com/document/d/1JPjKxo0JT5rqKZV1XtpydL6ehlyKIk7ipNWMCz2xyKE

Page 61: Diego container scheduler

Features✘ Files✘SSH✘Tasks✘Isolation segments

ComputeLoggingNetworking

https://docs.google.com/document/d/1JPjKxo0JT5rqKZV1XtpydL6ehlyKIk7ipNWMCz2xyKE

Page 62: Diego container scheduler

7.VersusImpress me part

Page 63: Diego container scheduler

250 000Containers

https://www.cloudfoundry.org/250k-containers-in-production-a-real-test-for-the-real-world/

Page 64: Diego container scheduler

1250Diego Cells

28.5 TBmemory

305Infra nodes

https://www.cloudfoundry.org/250k-containers-in-production-a-real-test-for-the-real-world/

Page 65: Diego container scheduler

thanks!Any questions?

You can find me [email protected]

Page 66: Diego container scheduler

CreditsSpecial thanks to all the people who made and released these awesome resources for free:✘ Presentation template by SlidesCarnival✘ Photographs by Unsplash

Page 67: Diego container scheduler

SlidesCarnival icons are editable shapes.

This means that you can:● Resize them without losing

quality.● Change fill color and opacity.

Isn’t that nice? :)

Examples:

Page 68: Diego container scheduler

Now you can use any emoji as an icon!And of course it resizes without losing quality and you can change the color.

How? Follow Google instructions https://twitter.com/googledocs/status/730087240156643328

✋👆👉👍👤👦👧👨👩👪💃❤😂😉😋😒😭 😸🏃💑 👶 🐟🍒

🍔💣📌📖🔨🎃🎈🎨🏈🏰🌏🔌🔑 and many more...

��

Page 69: Diego container scheduler

Extra graphics