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
Wow! The future is…now!And how we’re gonna deal with it
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
Sources of endless pain
• Bootstrap
• Develop
• Test
• Deploy
Sources of endless pain
• Develop
• Bootstrap!
• Test!
• Deploy
Thanks to bibstha
Thanks to bibstha
Thanks to bibstha
Thanks to bibstha
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
Thanks to bibstha
Thanks to bibstha
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
Docker: upsides
• Fast startup
• Reproducible environments
• No need to install anything on your dev machine (except for the docker itself)
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)
Typical workflow
Create a Dockerfile
Then build it…
Publish it
…and pronto!
Showcase time
Pretty much every-freaking-one• Spotify
• Mailgun
• AWS
• Yandex Cocaine
• Digital Ocean
• Create Digital
But wait, git introduced a level of complexity
as well…
– Our CEO
“…A-a-a-n-d from the business point of view?”
Yay!
• Bootstrap on dev machines
• Test under same conditions
• Stage same containers
• Deploy… yeah, same containers
Dockerize all the things!
Any way to automate that?
IaaS: AWS
• They simply made it right
• However, manual wiring is required
PaaS
• Google App Engine
• Heroku
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
Can I haz a PaaS?
• Sure thing!
• Docker to the rescue
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
Awesome dashboard
Awesome stuff
• Manage instances. Fleet.
• Service discovery. Etcd.
CoreOS: state of things
• Finally stable
• Amazon AMIs, Rackspace
• Bare Metal
Much like AWSBut private
So what we got
• Docker. Containers and isolation
• CoreOS. Service discovery and container management
Deis
Deis
• A PaaS on top of CoreOS
• Heroku-like experience
From developer’s POV
• $ git push heroku master
• $ git push deis master
Everyone’s freaking happy!
Summary !
Docker + CoreOS + Deis = AWESOME