Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

57
CI, CD, CD STEPHEN GARRETT - GEORGIA TECH

Transcript of Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

Page 1: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CI, CD, CDSTEPHEN GARRETT - GEORGIA TECH

Page 2: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Page 3: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEPLOYMENT TYPE

FTP

http://web.csulb.edu/~athomaso/ftpnotes.htm http://www.pendriveapps.com/portable-cyberduck-for-mac-os-x-ftp

Page 4: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEPLOYMENT TYPE

PUBLISH FROM IDE

https://host4asp.net/visual-studio-publish-application accu web hosting: https://goo.gl/Lv0wO9

Page 5: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEPLOYMENT TYPE

PUBLISH FROM IDE

https://host4asp.net/visual-studio-publish-application accu web hosting: https://goo.gl/Lv0wO9

Page 6: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEPLOYMENT TYPE

PUBLISH FROM DESIGNER

https://helpx.adobe.com/dreamweaver

Page 7: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEPLOYMENT TYPE

FILE SYSTEM COPY

howtogeek.com - http://goo.gl/L074EZ

Page 8: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

NOT DEPLOYMENT

EDIT CODE ON PRODUCTION

bitnami - https://goo.gl/9TZ0KP

Page 9: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

NOT DEPLOYMENT

EDIT CODE ON PRODUCTION

http://transithistory.org/ccreynolds/page.php-wordpress-code-i16.jpg

Page 10: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

https://www.flickr.com/photos/courtneyrian/5750960959

Page 11: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

ALL IT TAKES IS 1 MISSED STEP

Page 12: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

STRESSFUL

SO STRESSFUL netdoctor.co.uk - http://goo.gl/6yIDiy

Page 13: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

HOPE

thinkdefence.co.uk - http://goo.gl/B9xUPw

Page 14: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

RITUAL

Navajo Fire Dance by William R Leigh

Page 15: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

RITUAL

http://impactvs.com/conference-call-etiquette

Page 16: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

STRESSFUL

NO LUNCH clipartpanda.com - http://goo.gl/rqp006

Page 17: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

HOW MANY PROJECTS DO YOU HAVE?

Page 18: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

WE CAN FIX THIS!

Page 19: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

COMPUTERS!

War Games

Page 20: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

COMPUTERS!

War Games

Page 21: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

FEELINGS TO AVOID

LET’S GO FROM THISburkewilliamsspa - http://goo.gl/tzLixX

Big Bang Theory

Page 22: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

FEELINGS TO AVOID

LET’S GO FROM THISburkewilliamsspa - http://goo.gl/tzLixX

Big Bang Theory

Page 23: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

http://www.manageware.co.il/tools/portfolio/auto-deploy https://flic.kr/p/bP9xfc

Page 24: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

http://www.manageware.co.il/tools/portfolio/auto-deploy https://flic.kr/p/bP9xfc

Page 25: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

WITH COMPUTERS

OUR PROCESSES BECOME…

▸ Rapid

▸ Reliable

▸ Repeatable

Page 26: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

ADVANTAGES

▸ Improved software or product quality

▸ Higher confidence

▸ Better quality of life

Page 27: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

MINUTIA

Page 28: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

QUALITY

Page 29: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

VALUE

Page 30: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

VALUECONTINUOUS DELIVERY

Page 31: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

Martin Fowler http://martinfowler.com/bliki/FrequencyReducesDifficulty.html

Page 32: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

SO HOW DO WE GET THERE?

Page 33: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS INTEGRATION

Page 34: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

I SEE CI AS PRIMARILY GIVING BIRTH TO A RELEASE CANDIDATE AT EACH COMMIT. THE JOB OF THE CI SYSTEM AND DEPLOYMENT PROCESS IS TO DISPROVE THE PRODUCTION-READINESS OF A RELEASE CANDIDATE. THIS MODEL RELIES ON THE NEED TO HAVE SOME MAINLINE THAT REPRESENTS THE CURRENT SHARED, MOST UP TO DATE PICTURE OF COMPLETE.

Dave Farley

CONTINUOUS INTEGRATION

Page 35: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 36: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 37: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 38: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 39: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 40: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 41: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

▸Everyone can see what's happening

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 42: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

▸Everyone can see what's happening

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 43: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

▸Everyone can see what's happening

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 44: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

▸Everyone can see what's happening

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 45: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

▸Maintain a Single Source Repository

▸Automate the Build

▸Make Your Build Self-Testing

▸Everyone Commits To the Mainline Every Day

▸Every Commit Should Build the Mainline on an Integration Machine

▸Fix Broken Builds Immediately

▸Keep the Build Fast

▸Everyone can see what's happening

CONTINUOUS INTEGRATION

MARTIN FOWLER'S BULLET POINTS:

Page 46: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEMO - CI

Page 47: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS INTEGRATION

CI TOOLS

▸ TeamCity

▸ Jenkins

▸ TravisCI

▸ Bamboo

▸ Visual Studio Team Services

▸ CircleCI

▸ Codeship

▸ BuildMaster

Page 48: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DEPLOYMENT

Page 49: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DEPLOYMENT

Page 50: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DEPLOYMENT

CONTINUOUS DELIVERY

Page 51: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DELIVERY

CHANGE IN MINDSET

@thisisnkp https://twitter.com/lukegb/status/539744763071979520

Page 52: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DELIVERY

CHANGE IN MINDSET

/u/CodeTheInternet https://redd.it/2xxstj

Page 53: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

THE KEY TEST IS THAT A BUSINESS SPONSOR COULD REQUEST THAT THE CURRENT DEVELOPMENT VERSION OF THE SOFTWARE CAN BE DEPLOYED INTO PRODUCTION AT A MOMENT'S NOTICE - AND NOBODY WOULD BAT AN EYELID, LET ALONE PANIC.

Martin Fowler

CONTINUOUS DELIVERY

Page 54: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

DEMO - CD

Page 55: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

CONTINUOUS DEPLOYMENT - CONTINUOUS DELIVERY

TOOLS

▸ Octopus Deploy

▸ Chef

▸ Ansible

▸ Go

▸ Codeship

▸ ElectricFlow

▸ VSTS

Page 56: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

NO PRESSURE!

Page 57: Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery

QUESTIONS?

THANK YOU!Stephen Garrett

Senior App Services Manager

Campus Services - Information Technology Group

Georgia Institute of Technology

[email protected]