66
copyright 2014 1 Docker: A lot changed in a year Chris Swan, CTO @cpswan Cloud native networking

Docker: A lot changed in a year - GOTO Conferencegotocon.com/.../slides/ChrisSwan_DockerALotChangedInAYear.pdfDocker:! A lot changed in a year" Chris Swan, CTO! @cpswan! Cloud native

Embed Size (px)

Citation preview

copyright 2014 1

Docker:���A lot changed in a year

Chris Swan, CTO @cpswan

Cloud native networking

copyright 2014 2

TL;DR

Docker is important for DevOps because it tightens iteration loops

The core project developed very fast, but the ecosystem is now moving faster

They did it with Docker

copyright 2014 3

Why me?

copyright 2014

Grid, Cloud, Docker

4

copyright 2014

Docker inside

5

copyright 2014 6

This is a DevOps track, so���why do we care about Docker?

copyright 2014

John Boyd’s OODA loop

copyright 2014 8

In the beginning

copyright 2014

0.1.0 (2013-03-23)

Used LXC Registry to push/pull images

9

copyright 2014 10

Where were we a year ago?

copyright 2014

0.6.6 (2013-11-06) Runtime

•  Ensure container name on register

•  Fix regression in /etc/hosts

•  Add lock around write operations in graph

•  Check if port is valid

•  Fix restart runtime error with ghost container networking

•  Add some more colors and animals to increase the pool of generated names

•  Fix issues in docker inspect

•  Escape apparmor confinement

•  Set environment variables using a file.

•  Prevent docker insert to erase something

•  Prevent DNS server conflicts in CreateBridgeIface

•  Validate bind mounts on the server side

•  Use parent image config in docker build

•  Fix regression in /etc/hosts

11

Client

•  Add -P flag to publish all exposed ports

•  Add -notrunc and -q flags to docker history

•  Fix docker commit, tag and import usage

•  Add stars, trusted builds and library flags in docker search

•  Fix docker logs with tty

RemoteAPI

•  Make /events API send headers immediately

•  Do not split last column docker top

•  Add size to history

Other

•  Contrib: Desktop integration. Firefox usecase.

•  Dockerfile: bump to go1.2rc3

copyright 2014

We still didn’t have

•  A regular release cycle •  Compatibility with standard Linux distros

•  Links

•  Naming

Much of that came in 0.7.0 towards the end of Nov 2013

12

copyright 2014 13

The watershed release

copyright 2014

0.9.0 (2014-03-10)

Libcontainer

(LXC gets thrown under the bus)

14

copyright 2014

0.9.1 (2014-03-24)

Ubuntu 14.04 Centos 7

Etc.

15

copyright 2014 16

And then came DockerCon

copyright 2014

1.0.0 (2014-06-09)

Notable features since 0.12.0 (2014-06-05) • Production support

17

copyright 2014

libcontainer

18

copyright 2014

libswarm

19

copyright 2014

libchan

20

copyright 2014

Since 1.0.0

exec create

21

copyright 2014 22

Shocker, Flocker, Clocker

copyright 2014

Shocker

23

The issue The response

http://stealth.openwall.net/xSports/shocker.c https://news.ycombinator.com/item?id=7910117

copyright 2014

Flocker

24

copyright 2014

Clocker

25

copyright 2014 26

Composition

copyright 2014

Fig

27

copyright 2014

geard

28

copyright 2014

Panamax

29

copyright 2014 30

PaaS caught Docker

copyright 2014

Docker based PaaS

31

copyright 2014

Docker in PaaS

32

copyright 2014

PaaS == Opinionated?

33

copyright 2014

Docker might be the anti PaaS

34

copyright 2014

PaaS == Operationalised?

35

copyright 2014 36

Orchestration

copyright 2014

Everybody has one…

37

copyright 2014

Kubernetes is the one to watch

38

copyright 2014

This week…

39

copyright 2014

… not containerised cloud (yet)

40

copyright 2014 41

So why does it matter?

copyright 2014

Build, Ship > Run?

42

Image credit http://www.mediaagility.com/2014/docker-the-next-big-thing-on-cloud/

copyright 2014

Docker Hub

43

Image credit http://blog.docker.com/2014/06/announcing-docker-hub-and-official-repositories/

copyright 2014

Bottled software

44

Image credit CC Julio Morales https://www.flickr.com/photos/phooleo/4703216251

copyright 2014 45

There’s still a bunch of work to be done

copyright 2014

Containers don’t contain

46

With thanks to Dan Walsh @rhatdan Watch his DockerCon 2014 presentation at http://is.gd/dcrhdw

copyright 2014 47

The manifest problem

copyright 2014

Each active line creates a layer

48

Base OS Sources

Update repos Install nginx

Mod nginx.conf Mod index.html

copyright 2014

An image binds layers together

49

Base OS Sources

Update repos Install nginx

Mod nginx.conf Mod index.html

copyright 2014

Nginx example

The image is the unit of deployment

50

copyright 2014

Nginx example

What version of nginx is that?

51

copyright 2014

Nginx example

What version of OpenSSL installed?

52

?

copyright 2014

Nginx example

and which bash?

53

?

copyright 2014 54

My Docker wish list

copyright 2014

Feb 2014

Docker CLI Disk quotas

Route propogation

55

copyright 2014

Nov 2014

Docker CLI Disk quotas

Finer life cycle control

56

copyright 2014

If you want a better Docker

Learn Go

57

copyright 2014 58

And another thing…

copyright 2014

Windows

59

copyright 2014

Governance

1. Mature tooling/CI process so project can scale (more)���

2. Dealing with long outstanding pull requests���

3. Clear separation between Docker the company and Docker the project���(and clarification of MS relationship)���

4. Clear articulation of roadmap

60

copyright 2014

Maintainers

61

copyright 2014 62

How did we come so far so fast?

copyright 2014

They used Docker

63

copyright 2014 64

Wrapping up

copyright 2014 65

TL;DR

Docker is important for DevOps because it tightens iteration loops

The core project developed very fast, but the ecosystem is now moving faster

They did it with Docker

copyright 2014 66

Chicago, US [email protected]   +1 888 444 3962

Questions?