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