Slide 1

Slide 1 text

How people build software ! " Implementing a CI and CD Pipeline with GitHub DevOpsDays Amsterdam June 29 2016

Slide 2

Slide 2 text

How people build software ! Stefan Stölzle Services Engineer stoe @me_stoe [email protected] I ❤ my Lederhos'n. ! ! #

Slide 3

Slide 3 text

How people build software ! ! Pre-Requisites !

Slide 4

Slide 4 text

How people build software ! Legacy SDLCs !

Slide 5

Slide 5 text

How people build software ! ! $ • have a VCS (!) • 1 branch/trunk/mainline • ~ year scale release cadence ancient

Slide 6

Slide 6 text

How people build software ! ! % • several long-running branches • human gates • ~ month scale release cadence (at best) waterfall

Slide 7

Slide 7 text

How people build software ! what do we want? !

Slide 8

Slide 8 text

How people build software ! ! CI/CD benefits & ' ( better feedback at all stages shorter cycle time granular releases

Slide 9

Slide 9 text

How people build software ! ! CI/CD benefits ) * + less stress more time for creative work measure success/failure consistently

Slide 10

Slide 10 text

How people build software ! ! CI/CD benefits Cost per Defect $0 $2,000 $4,000 $6,000 $8,000 $10,000 $12,000 $14,000 $16,000 Requirements Design Coding Testing Maintenance $139 $455 $977 $7,136 $14,103 taken from https://agileelements.wordpress.com/2008/04/22/cost-of-software-defects/ adapted from Jones, Software Assessments, Benchmarks, and Best Practices (2000)

Slide 11

Slide 11 text

How people build software ! ! continuous delivery/deployment automated software delivery process • frequent branching + pull requests • primarily automated gates • ~ minute scale release cadence

Slide 12

Slide 12 text

How people build software ! ! Fig 5.2 Humble, Farley Continuous Delivery (2010) Delivery Team Version Control Build &
 Unit Tests Automated Acceptance Tests User Acceptance Tests Release Trigger Trigger Trigger Trigger Trigger Check in Check in Check in Feedback Feedback Feedback Feedback Feedback Feedback Approval Approval !

Slide 13

Slide 13 text

How people build software ! ! CI/CD with GitHub Hub of SDLC

Slide 14

Slide 14 text

How people build software ! ! Getting started CREATE A BRANCH OPEN A PULL REQUEST MERGE AND DEPLOY

Slide 15

Slide 15 text

How people build software ! ! Integrate new practices & tools CREATE A BRANCH OPEN A PULL REQUEST MERGE AND DEPLOY Protected Branches automated gates Status API 
 CI

Slide 16

Slide 16 text

How people build software ! ! Let’s try githubteacher-ci-cd-workshop.herokuapp.com

Slide 17

Slide 17 text

How people build software ! ! Template GitHub repository github.com/githubteacher/ci-cd-workshop

Slide 18

Slide 18 text

How people build software ! ! Import the template GitHub repository import.github.com

Slide 19

Slide 19 text

How people build software ! ! CI aims , - . catch bugs early reduce merge conflicts regularly prove app working

Slide 20

Slide 20 text

How people build software ! ! CI in practice (cultural) • agreed failure threshold • test locally first • don’t base new work on broken build • revert if needed • share code ownership CI a process, not a tool!

Slide 21

Slide 21 text

How people build software ! ! CI in practice (technical) • short-lived branches (< 3 days) • build/test every push • display results prominently

Slide 22

Slide 22 text

How people build software ! ! Fig 5.2 Humble, Farley Continuous Delivery (2010) Tooling GitHub 3rd Party Your Server Create Deployment GitHub Deployments API Deployment Created Deployment Event SSH + Deploy Deployment Status Deployment Status Deploy Completed

Slide 23

Slide 23 text

How people build software ! " Thank you! Stefan Stölzle stoe @me_stoe [email protected] ! ! #