Agenda
• Classic Apps vs. Containerized Apps
• Architecture for App development & deployment
Classic (Web)
Application
Web Application
Dependencies
Data-
Base
Web-
Server
Packages
Libraries
Web Application
Dependencies
Data-
Base
Web-
Server
Packages
Libraries
Devs Ops
Web Application
Dependencies
Data-
Base
Web-
Server
Packages
Libraries
Devs Ops
1.1.0 0.9
⚡
Containerized

(Web) Application
Web Application
Docker Host
PHP DataBase
Webserver Mail
Ops
Devs
Container Specification

a.k.a. Dockerfile
FROM nginx:1.7
MAINTAINER punkt.de
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
Container Orchestration

a.k.a. docker-compose.yml
app:

build: Configuration/Docker/App

environment:

- FLOW_CONTEXT=Production/Docker

volumes:

- /var/www/app/Web

- /var/www/app/Packages



data:

image: php:5.6-fpm

command: chown -Rf www-data:www-data /var/www/app/Data && echo "Data started"

volumes:

- /var/www/app/Data

- /var/lib/mysql



web:

build: Configuration/Docker/Web



db:

image: mariadb:10.0

environment:

MYSQL_ROOT_PASSWORD: supersecret



mail:

image: mailhog/mailhog:latest

Deployment
a.k.a. ship Container
staging | integration | production
local development
Webserver
docker build
Docker
Registry
docker push
Docker Host
Webserver
docker
pull & up
Usage Scenarios
Integration Server
Web Application
Docker Host
PHP
master
DataBase
Webserver Mail
Web Application
PHP
devel
DataBase
Webserver Mail
Web Application
PHP
feature
DataBase
Webserver Mail
Proxy
master.punktdeneos.jenkins.punkt.de devel.punktdeneos.jenkins.punkt.de feature.punktdeneos.jenkins.punkt.de
Staging
Web Application
Docker Host
PHP
v 2.2
DataBase
Webserver Mail
Production
Web Application
Docker Host
PHP
v 2.1
DataBase
Webserver Mail
demo.punkt.de www.punkt.de
Devs
Ops
Docker
Registry
DataBaseWebserver Mail
docker push
Application 1 Application 2 Application 3
docker push
The Dark Side
„Under Construction“
• Stumble upon quite a few bugs
• Not many best-practices yet
• New tools almost every day
• Too many „Don’t use in production!“s
Further Readings
Docker
Docker
Docker

Docker