Download pdf - Dockerize or die

Transcript
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