$30 off During Our Annual Pro Sale. View Details »

Docker Webinar Series Part 3: Production & Beyond

Docker Webinar Series Part 3: Production & Beyond

Wrapping up the series on Docker with some jumping off points. You can watch the webinar here: https://cloudacademy.com/webinars/docker-webinar-series-production-beyond-34/

Adam Hawkins

December 07, 2016
Tweet

More Decks by Adam Hawkins

Other Decks in Technology

Transcript

  1. Hi! I’m Adam Hawkins • Site Reliability Engineering Team Lead

    at Saltside • Manages ~350 containers in production • 2+ years of Docker experience • “Introduction to Docker” course lecturer • @adman65 • http://blog.slashdeploy.com
  2. What is Docker? • Application agnostic container runtime • Runs

    an isolated process in a container on a single kernel • Different than virtualization
  3. What can I do with Docker? • Creating portable development

    environment • Standardizing infrastructure in polygot teams • Containerize your build system • Deliver CLI software • Build large scale distributed systems
  4. How do I use Docker in development? • Use docker-compose

    to model your application • Use docker-machine to play around with docker infrastructure • Use docker to test different databases say (mongo:2.8 vs mongo:3.2)
  5. How do I use Docker in production? • Choose your

    deployment target (a hosted service such as Hyper.sh, roll our own, or some orchestration tool) • Configure health checks (either in the Dockerfile or via your orchestration tool) • Integrate your target with your metric collection tools (Most tools have integrations with the docker daemon or orchestration tool) • Connect your CI system to trigger deployments
  6. What are the pros/cons? • [pro] offers flexibility to application

    developers • [pro] increase development/production parity • [pro] gives a platform to standardize infrastructure • [con] changing rapidly; Docker Inc. making big changes • [con] increases complexity • [pro] prepares organizations for a containerized future
  7. What do you recommend? • Start with a PoC in

    a development environment • Use docker-compose as much as possible • Use Google Container Engine (Hosted Kubernetes) for your production environment • Use the official images as much as possible; avoid creating your own custom base images • Prefer one Dockerfile per project • Ruthless stick to 12 Factor app principles • Bake containers into your process at all stages for the biggest benefit
  8. Into the Future • Orchestration • Docker Datacenter 2.0 •

    Log drivers • Alternate container runtimes (rkt or runC)