Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deployment, Faster (abridged)

Deployment, Faster (abridged)

A year ago hardly anyone had heard of Docker, a small open source project using some arcane features of the Unix operating system. Going into 2015 Docker, or more accurately container-based deployment, is suddenly on every corporate IT roadmap.

What is a Docker container? How is it different from a virtual machine? Why does it matter? And more importantly why should you care about it?

As physical servers give way to virtual machines, and virtual machines give way to cloud infrastructure, containers may be the magic dust that enables your organisation to make the best use of its existing hardware investment and pave the way to Continuous Delivery.

In this talk, Dan North describes the landscape that container-based deployment is shaping, and gives you some pointers to tools, technologies and resources so you can start exploring it for yourself.

Daniel Terhorst-North

March 26, 2015
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Technology

Transcript

  1. @tastapod We want to reliably and quickly deploy a given

    version of an application into a given environment.
  2. @tastapod So… We want something QUICK! - Quick to build

    - Quick to validate - Quick to deploy We want something RELIABLE! - Same binary in each environment - Pull complexity upstream, fail sooner - Each environment increases confidence
  3. @tastapod host Virtual machines get us part of the way

    hypervisor
 virtual machine ✓ provides consistency ✓ reduces complexity ☓ slow startup ☓ runtime overhead
  4. @tastapod host Linux kernel isolation* *may contain magic** **Solaris had

    this 10 years ago
 Containers get us much closer! Container ✓ provides consistency ✓ reduces complexity ✓ fast startup ✓ minimal runtime overhead
  5. @tastapod Meet Docker Docker images - self-contained, immutable container definition

    - version-controlled, easy to share - plain text definition, fast to build 
 Docker daemon - starts, stops, manages containers
 Docker client - your command-line friend
  6. @tastapod Docker is written in Go Designed by the people

    who invented unix - Rob Pike, Ken Thompson
 Dev-friendly - “structurally-typed”, fast compile, great libs, built-in concurrency - opinionated, in a good way
 Ops-friendly - compiles into a self-contained, statically-linked binary - no runtime dependencies, load path, classpath, libs
  7. @tastapod Why containers? Why now? All the pieces were already

    there… - cloud makes it desirable - Go makes it possible - Docker makes it accessible - the community makes it fun!
  8. @tastapod TANSTAAFL Still need to solve: - service discovery, monitoring

    consul - service registry registrator - clean startup/shutdown (init) runit - CI, CD docker! - cluster definition/management mesos - physical server provisioning docker! - Windows docker?