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!
- Install Docker
- Determine which services dependencies you have
- Write a Dockerfile for each service that has local development files
- create, start, stop and experiment with your containers
- When your Dockerfile is healthy, create a docker compose file and use docker-compose
Who & What?
devops-2016
By Moritz C. Türck
devops-2016
- 911