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

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/

Adam Hawkins

November 08, 2016
Tweet

More Decks by Adam Hawkins

Other Decks in Technology

Transcript

  1. Docker: Dev to Production
    cloudacademy.com

    View Slide

  2. First, A Poll
    Which best describes you?

    View Slide

  3. Plan
    My Goal: Familiarize you with production deployment options
    Presentation & Demo
    ~10 minutes for Q & A. Please put your questions in the chat.

    View Slide

  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

    View Slide

  5. Deploying Docker
    tl;dr: it’s all about orchestration

    View Slide

  6. One Size Does Not Fit All
    How big is your app? 1 web server? 10 services? 100 containers?

    View Slide

  7. Contenders
    • Golden Images
    • Heroku
    • Docker Cloud
    • Docker Swarm
    • Docker Data Center / UCP
    • ECS
    • Kubernetes / GKE
    • Mesos / DCOS

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  17. Demo Time!
    Create first Kubernetes Pod
    Expose pods with a Kubernetes service

    View Slide

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

    View Slide

  19. Demo Time!
    cloudacademy.com

    View Slide

  20. Question Time
    cloudacademy.com

    View Slide

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

    View Slide