54
Wow! The future is…now! And how we’re gonna deal with it

Dockerize or die

  • Upload
    create

  • View
    94

  • Download
    0

Embed Size (px)

DESCRIPTION

Docker is getting much love & attention these days. Despite that the version 1.0 was released just this spring, pretty much everyone is working on their own version of a system that would allow developers to automate container creation. A combination of CoreOS and Deis seem to be promising, providing a familiar Heroku-style deployment mechanism and eliminating the unnecessary complexity of manual container management. The slides give an overview of the tools mentioned and the benefits one gets by adopting them.

Citation preview

Page 1: Dockerize or die

Wow! The future is…now!And how we’re gonna deal with it

Page 2: Dockerize or die

Why?• Keep this presentation as a reference for the

company

• Create a vision for you and share mine

• Motivate myself to keep up

• Convince stakeholders

• Buzzwords… yeah, just buzzwords

Page 3: Dockerize or die

Sources of endless pain

• Bootstrap

• Develop

• Test

• Deploy

Page 4: Dockerize or die

Sources of endless pain

• Develop

• Bootstrap!

• Test!

• Deploy

Page 5: Dockerize or die
Page 6: Dockerize or die
Page 7: Dockerize or die

Thanks to bibstha

Page 8: Dockerize or die

Thanks to bibstha

Page 9: Dockerize or die

Thanks to bibstha

Page 10: Dockerize or die

Thanks to bibstha

Page 11: Dockerize or die

Docker: ?

• Is a platform to build, run and ship your applications

• Is a kind of git versioning for software

• How it was in Google back in a day

Page 12: Dockerize or die

Thanks to bibstha

Page 13: Dockerize or die

Thanks to bibstha

Page 14: Dockerize or die

Docker: ??

• Just like the App Store, but open source

• You can pull anything and install it fast

• No approval required

• Anyone can host their private registry

Page 15: Dockerize or die

Docker: upsides

• Fast startup

• Reproducible environments

• No need to install anything on your dev machine (except for the docker itself)

Page 16: Dockerize or die

Docker: downsides

• Some old servers might need an upgrade

• Additional level of complexity

• MacOS incompatibilities

• No way to link containers on multiple machines (as of September 2014)

Page 17: Dockerize or die

Typical workflow

Page 18: Dockerize or die

Create a Dockerfile

Page 19: Dockerize or die
Page 20: Dockerize or die

Then build it…

Page 21: Dockerize or die

Publish it

Page 22: Dockerize or die

…and pronto!

Page 23: Dockerize or die

Showcase time

Page 24: Dockerize or die
Page 25: Dockerize or die

Pretty much every-freaking-one• Spotify

• Mailgun

• AWS

• Yandex Cocaine

• Digital Ocean

• Create Digital

Page 26: Dockerize or die

But wait, git introduced a level of complexity

as well…

Page 27: Dockerize or die

– Our CEO

“…A-a-a-n-d from the business point of view?”

Page 28: Dockerize or die

Yay!

• Bootstrap on dev machines

• Test under same conditions

• Stage same containers

• Deploy… yeah, same containers

Page 29: Dockerize or die

Dockerize all the things!

Page 30: Dockerize or die

Any way to automate that?

Page 31: Dockerize or die

IaaS: AWS

• They simply made it right

• However, manual wiring is required

Page 32: Dockerize or die

PaaS

• Google App Engine

• Heroku

Page 33: Dockerize or die

12 Factor• I. Codebase. One codebase tracked in revision control, many deploys

• II. Dependencies. Explicitly declare and isolate dependencies

• III. Config. Store config in the environment

• IV. Backing Services. Treat backing services as attached resources

• V. Build, release, run. Strictly separate build and run stages

• VI. Processes. Execute the app as one or more stateless processes

• VII. Port binding. Export services via port binding

• VIII. Concurrency. Scale out via the process model

• IX. Disposability. Maximize robustness with fast startup and graceful shutdown

• X. Dev/prod parity. Keep development, staging, and production as similar as possible

• XI. Logs. Treat logs as event streams

• XII. Admin processes. Run admin/management tasks as one-off processes

Page 34: Dockerize or die

Can I haz a PaaS?

• Sure thing!

• Docker to the rescue

Page 35: Dockerize or die
Page 36: Dockerize or die
Page 37: Dockerize or die

CoreOS

• The world's first OS as a Service — patches are delivered as a continuous stream of updates.

• ChromeOS spin-off

• Every process is dockerized

• Cloud management made simple

Page 38: Dockerize or die

Awesome dashboard

Page 39: Dockerize or die
Page 40: Dockerize or die
Page 41: Dockerize or die

Awesome stuff

• Manage instances. Fleet.

• Service discovery. Etcd.

Page 42: Dockerize or die
Page 43: Dockerize or die

CoreOS: state of things

• Finally stable

• Amazon AMIs, Rackspace

• Bare Metal

Page 44: Dockerize or die
Page 45: Dockerize or die

Much like AWSBut private

Page 46: Dockerize or die

So what we got

• Docker. Containers and isolation

• CoreOS. Service discovery and container management

Page 47: Dockerize or die
Page 48: Dockerize or die

Deis

Page 49: Dockerize or die

Deis

• A PaaS on top of CoreOS

• Heroku-like experience

Page 50: Dockerize or die
Page 51: Dockerize or die

From developer’s POV

• $ git push heroku master

• $ git push deis master

Page 52: Dockerize or die

Everyone’s freaking happy!

Page 53: Dockerize or die

Summary !

Docker + CoreOS + Deis = AWESOME

Page 54: Dockerize or die