Von 0 auf Continuous Deployment in 60 Minuten
Alexander Zeitler
Solution Architect und Entwickler bei PDMLab
Microsoft MVP für ASP.NET
ASP.NET Web API / Microsoft Azure Advisor
Agenda
- Continuous Delivery
- Continuous Deployment
- Wie hilft Docker?
- Continuous Deployment mit Docker
Continuous Delivery
Continuous Delivery (CD) is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time
Friday deployments
Pipeline
Pipeline
Pipeline
Pipeline
Pipeline
Pipeline
Make Deployment a non-Event!
Big Bang Release
Zeit
Features
vs.
Continuous Delivery
Zeit
Features
Herausforderungen
Testing
Automatisierung
Entwickler vs. Deployment
Team Building
DevOps
Continuous Deployment
Jede Änderung wird geshipped
Anforderungen an Deployment
- Schnell
- Zuverlässig
- Reproduzierbar
Deployment automatisieren!
Wie hilft Docker?
Build, ship and run any application anywhere
vs...
Put it in a Container
Build
Package application in a container
Ship
Move container to another machine
Run
Execute that container
Any Application
All applications running on Linux
Anywhere
VM on premise, cloud, bare metal
Build
Dockerfile
FROM ubuntu:14.04
MAINTAINER Docker Team <education@docker.com>
RUN apt-get update
RUN apt-get install -y nginx
RUN echo 'Hi, I am your father...erm in your container' \
>/usr/share/nginx/html/index.html
CMD [ "nginx", "-g", "daemon off;" ]
EXPOSE 80
Ship
Docker Hub
Image name <username>/<reponame>
z.B. microsoft/aspnet
docker push
docker pull
Run
- Leichtgewichtig
- Schnell
Wie schnell?
Benchmark
$ time docker run ubuntu echo hello world
Docker Footprint
$ sudo docker images
$ sudo docker history <CID>
Any application
- Web apps
- API backends
- Datenbanken (SQL, NoSQL)
- Big data
- Message queues
- ...
Runs on Linux == Runs in Docker
Windows Container?
Nano Server
Getting started
curl -sSL https://get.docker.com/ | sh
Try
On OS X / Windows
On Linux
Install
Node.js in Docker
node
Demo
Continuous Delivery
mit Docker
Docker Toolset
- Docker Machine
- Docker Compose
- Docker Swarm
Docker Machine
$ docker-machine create --driver virtualbox dev
Docker Compose
web:
build: .
links:
- db
ports:
- "8000:8000"
db:
image: postgres
Docker Swarm
Fragen?
Danke!
Von 0 auf Continuous Deployment in 60 Minuten
By Alexander Zeitler
Von 0 auf Continuous Deployment in 60 Minuten
- 1,038