Docker: From Dev to Production

Docker: From Dev to Production

Part 2 of 3 in a series of webinars for CloudAcademy. You can find a summary of the webinar with video in my wrap up post: http://cloudacademy.com/blog/docker-deployment-dev-production/

94378c403019af23a28b08447a34b8e0?s=128

Adam Hawkins

November 08, 2016
Tweet

Transcript

  1. Docker: Dev to Production cloudacademy.com

  2. First, A Poll Which best describes you?

  3. Plan My Goal: Familiarize you with production deployment options Presentation

    & Demo ~10 minutes for Q & A. Please put your questions in the chat.
  4. 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
  5. Deploying Docker tl;dr: it’s all about orchestration

  6. One Size Does Not Fit All How big is your

    app? 1 web server? 10 services? 100 containers?
  7. Contenders • Golden Images • Heroku • Docker Cloud •

    Docker Swarm • Docker Data Center / UCP • ECS • Kubernetes / GKE • Mesos / DCOS
  8. Golden Images • Fully bake an image (VM, AMI etc)

    to run appropriate Docker image • [pro] Supports cloud & on-prem infrastructures • [pro] Easy to start with; scales up nicely to disconnected services • [pro] Easy horizontal & vertical scaling • [con] Requires infrastructure engineering experience • [con] Rollout times depends on your build and scaling process
  9. Heroku • Full featured PaaS • [pro] Well established feature

    set with many integrations • [pro] DBaaS offering (Heroku PostgreSQL and more) • [con] Cost • [pro] Easy access to logs, environment variables • [pro] Easy horizontal and vertical scaling • [con] Few geographical regions • [pro] Easily connect to CI for continuous deployment
  10. Docker Cloud • You provide computer, Docker provides orchestration •

    [pro] First party offering • [pro] You provide compute (via bare metal or cloud providers) • [con] You provide compute • [pro] Easily connect to CI for continuous deployment • [con] Double charge; you pay service and infrastructure costs
  11. Docker Swarm • First party cluster orchestration • [pro] First

    party offering • [pro] You provide compute (via bare metal or cloud providers) • [con] Brand new as of 1.12.0; untested • [pro] Supports docker client operations • [pro] Run on your own infrastructure (cloud or on-prem)
  12. Docker Data Center / UCP • First party offering •

    [pro] Setups authentication, registry, and swarm out of the box • [con] Lags behind the Docker daemon • [con] 1.x has issues with multiple availability zones • [pro] Run on your own infrastructure (cloud or on-prem) • [con] Pricing ($150 a month per node)
  13. AWS Elastic Container Service • Task scheduling for containers •

    [pro] Runs on AWS • [con] Not managed; you provision instances and run their agent • [con] Low level functionality; rough around the edges • [pro] Higher level tools like Empire or Convox smooth out the edges
  14. Kubernetes / Google Container Engine • Container as a Service

    • [pro] Works for all size applications • [pro] Run on your own infrastructure (cloud or on-prem) • [pro] One-click cloud offering via Google Container Enginer • [con] Requires learning an entirely new system • [con] Does not support docker clients • [con] Containers only • [pro] Powerful base to build one (OpenShift runs on Kubernetes) • [pro] Rolling deploys
  15. Mesos / DCOS • Distributed systems kernel • [pro] Works

    for all size applications • [pro] Run on your own infrastructure (cloud or on-prem) • [pro] One-click cloud offering via Microsoft Azure • [con] Requires learning an entirely new system • [con] Does not support docker clients • [pro] For containers and non-containers • [pro] Paid or open source offerings • [pro] Multiple deployment strategies via frameworks
  16. Recommendations • Heroku for small and-non distributed applications (really hard

    to beat Heroku’s features) • Golden Images or something built on ECS (e.g. Empire/Convox) for small distributed applications or you want to run your own infrastructure • Kubernetes for container native applications or large distributed systems (GKE if don’t want to run infrastructure) • Mesos / DCOS if you need to support an entire organization with a mix containerized & non-containerized work loads
  17. Demo Time! Create first Kubernetes Pod Expose pods with a

    Kubernetes service
  18. Finally, One More Poll Help me prepare for part 3

  19. Demo Time! cloudacademy.com

  20. Question Time cloudacademy.com

  21. Thank you! https:/ /cloudacademy.com/webinars/ https:/ /cloudacademy.com/enterprise-cloud-training/ https:/ /cloudacademy.com/pricing/ cloudacademy.com