Slide 1

Slide 1 text

Hannes Moser 2016 – @eliias

Slide 2

Slide 2 text

Hello • Web Development for 10+ years • Webservices, Applications and DevOps • Teaching: University of Applied Sciences Salzburg • Working: Die Netzarchitekten Hannes Moser 2016 – @eliias

Slide 3

Slide 3 text

History of Deployments • FTP/SFTP • rsync/SCP • GIT/CVS • Archives (tar, jar, …) Hannes Moser 2016 – @eliias

Slide 4

Slide 4 text

Hannes Moser 2016 – @eliias

Slide 5

Slide 5 text

Deployment & Delivery Challenges – Web Development • Lots of and small changes • Heterogenous platforms and languages • Environments (Dev, Stage, Production) • Zero Downtime • Rollback Hannes Moser 2016 – @eliias

Slide 6

Slide 6 text

Hannes Moser 2016 – @eliias

Slide 7

Slide 7 text

…and • Monitoring • Infrastructure as Code • Continuous Delivery • Infrastructure and Application Metrics Hannes Moser 2016 – @eliias

Slide 8

Slide 8 text

…and • Dev and Ops Collaboration and Cooperation • Dealing with unexpected traffic • Fail beautifully • Security Hannes Moser 2016 – @eliias

Slide 9

Slide 9 text

The Twelve-Factor App1 ! Best practices and methodology for building apps: • Software-as-a-service (Saas) • Any programing language (PHP, JavaScript, Ruby, Java, …) • Any combination of backing services (database, queue, cache, …) 1 The Twelve-Factor App Hannes Moser 2016 – @eliias

Slide 10

Slide 10 text

Basic Rules • Declarative formats for setup automation • Clean contract w/ underlying operating system • Ready for cloud platforms • Minimizing divergence between dev and production • Scale up w/o significant changes Hannes Moser 2016 – @eliias

Slide 11

Slide 11 text

Hannes Moser 2016 – @eliias

Slide 12

Slide 12 text

The twelve factors – Part 1 1. Codebase 2. Dependencies 3. Config 4. Backing services Hannes Moser 2016 – @eliias

Slide 13

Slide 13 text

The twelve factors – Part 2 1. Build, release, run 2. Processes 3. Port binding 4. Concurrency Hannes Moser 2016 – @eliias

Slide 14

Slide 14 text

The twelve factors – Part 3 1. Disposability 2. Dev/prod parity 3. Logs 4. Admin processes Hannes Moser 2016 – @eliias

Slide 15

Slide 15 text

What we actually want A single deployable file, which is under version control, verified by a checksum and simply runs w/o any additional dependencies → ! Hannes Moser 2016 – @eliias

Slide 16

Slide 16 text

Docker ! Docker allows you to package an application with all of its dependencies into a standardized unit for software development. — docker.com Hannes Moser 2016 – @eliias

Slide 17

Slide 17 text

Docker vs Virtual Machines Hannes Moser 2016 – @eliias

Slide 18

Slide 18 text

Docker vs Virtual Machines Hannes Moser 2016 – @eliias

Slide 19

Slide 19 text

Docker in a nutshell • Docker has images • An instance of an image is a container • Container == Sandboxed Process Hannes Moser 2016 – @eliias

Slide 20

Slide 20 text

The docker ecosystem • Engine • Compose • Registry • Swarm • Machine Hannes Moser 2016 – @eliias

Slide 21

Slide 21 text

Create your first docker app Every app has its own Dockerfile FROM mhart/alpine-node:6 WORKDIR /app COPY ./src /app RUN npm install --production CMD ["npm", "start"] Hannes Moser 2016 – @eliias

Slide 22

Slide 22 text

Create the image docker build -t meetup/hello-world . Hannes Moser 2016 – @eliias

Slide 23

Slide 23 text

Run it docker run -p 5555:3000 \ --name meetup-hello-world \ meetup/hello-world Hannes Moser 2016 – @eliias

Slide 24

Slide 24 text

Run community images ! Pull and run MySQL, Redis, Mong w/ a single command: docker run \ --name clustar-db \ mysql/mysql-server:5.7 Hannes Moser 2016 – @eliias

Slide 25

Slide 25 text

Real World • Connecting multiple services • Continuous Delivery • Update images (Registry) • Zero Downtime Hannes Moser 2016 – @eliias

Slide 26

Slide 26 text

Real World Demo Hannes Moser 2016 – @eliias

Slide 27

Slide 27 text

Hannes Moser 2016 – @eliias

Slide 28

Slide 28 text

Real World • Red Bull Content Pool • clustar Hannes Moser 2016 – @eliias

Slide 29

Slide 29 text

Interested? • Continuous Delivery is part of the new MMT master • We are willing to organize a workshop @Barcamp Salzburg • Good intro by Laura Frank @concat2015 • Ask me @eliias Hannes Moser 2016 – @eliias

Slide 30

Slide 30 text

Thank You Questions? Hannes Moser 2016 – @eliias