Devops

GOALS

  • Environment parity

  • Quick on-boarding for new devs

  • Continuous Integration and Testing

  • Automated Production deployment

DOCKERFILE
DOCKER COMPOSE
DOCKER CLOUD
DEPLOYMENT

HYPERVISOR VS CONTAINER

IMAGE is the base

}

composed of layers

base for your containers

read only

get basic images from registry

 

Layer

Layer

Union File System

everywhere, only changes to the previous layer are considered

CONTAINER

container is an ephemeral instance of an IMAGE

Layer

Layer

Temporary Container Data

VOLUMES

data persistence
best practice is data volume services (see compose)

Layer

Layer

Temporary Container Data

Volume #1

linked at runtime into container

IMAGES are a BUNCH OF LAYERS!

DOCKER ENGINE / MACHINE

runs on linux not unix

on macOS you need a VM

use Docker for Mac to get xhyve power

on *buntu kernel >3.10 install via apt-get 

 

 

DOCKERFILE

Dem

DOCKERFILE

Goes into GIT!

COMBINING SEVERAL SERVICES

Docker Compose

DOCKER COMPOSE PROJECT

Dem

Always USE Compose

Consistent workflow for developers even for single service projects

CONTINIOUS INTEGRATION

CI Service (e.g. Docker Cloud) pulls from git and runs test (almost ready)

THE FUTURE

CONTINUOUS DEPLOYMENT

to staging systems

CONTINUOUS DELIVERY

to production systems and the client

Workshop

Dockerize your project!

  1. Install Docker
  2. Determine which services dependencies you have
  3. Write a Dockerfile for each service that has local development files
  4. create, start, stop and experiment with your containers
  5. When your Dockerfile is healthy, create a docker compose file and use docker-compose

Who & What?

devops-2016

By Moritz C. Türck