Slide 1

Slide 1 text

Docker: Dev to Production cloudacademy.com

Slide 2

Slide 2 text

First, A Poll Which best describes you?

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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)

Slide 12

Slide 12 text

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)

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Finally, One More Poll Help me prepare for part 3

Slide 19

Slide 19 text

Demo Time! cloudacademy.com

Slide 20

Slide 20 text

Question Time cloudacademy.com

Slide 21

Slide 21 text

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