Docker

24

Transcript of Docker

Agenda

• Classic Apps vs. Containerized Apps

• Architecture for App development & deployment

Classic (Web) Application

Web Application

Dependencies

Data-Base

Web-Server

PackagesLibraries

Web Application

Dependencies

Data-Base

Web-Server

PackagesLibraries

Devs Ops

Web Application

Dependencies

Data-Base

Web-Server

PackagesLibraries

Devs Ops

1.1.0 0.9⚡

Containerized(Web) Application

Web Application

Docker Host

PHP DataBase

Webserver Mail

Ops

Devs

Container Specificationa.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 Orchestrationa.k.a. docker-compose.yml

app: build: Configuration/Docker/App environment: - FLOW_CONTEXT=Production/Docker volumes: - /var/www/app/Web - /var/www/app/Packagesdata: 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/mysqlweb: build: Configuration/Docker/Webdb: image: mariadb:10.0 environment: MYSQL_ROOT_PASSWORD: supersecretmail: image: mailhog/mailhog:latest

Deployment a.k.a. ship Container

staging | integration | production

local development

Webserverdocker build

DockerRegistry

docker push

Docker Host

Webserver

docker pull & up

Usage Scenarios

Integration Server

Web Application

Docker Host

PHPmaster DataBase

Webserver Mail

Web Application

PHPdevel DataBase

Webserver Mail

Web Application

PHPfeature DataBase

Webserver Mail

Proxy

master.punktdeneos.jenkins.punkt.de devel.punktdeneos.jenkins.punkt.de feature.punktdeneos.jenkins.punkt.de

Staging

Web Application

Docker Host

PHPv 2.2 DataBase

Webserver Mail

Production

Web Application

Docker Host

PHPv 2.1 DataBase

Webserver Mail

demo.punkt.de www.punkt.de

Devs

Ops

DockerRegistry

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