usg web tech day 2016 - continuous integration, deployment, and delivery
TRANSCRIPT
CI, CD, CDSTEPHEN GARRETT - GEORGIA TECH
DEPLOYMENT TYPE
FTP
http://web.csulb.edu/~athomaso/ftpnotes.htm http://www.pendriveapps.com/portable-cyberduck-for-mac-os-x-ftp
DEPLOYMENT TYPE
PUBLISH FROM IDE
https://host4asp.net/visual-studio-publish-application accu web hosting: https://goo.gl/Lv0wO9
DEPLOYMENT TYPE
PUBLISH FROM IDE
https://host4asp.net/visual-studio-publish-application accu web hosting: https://goo.gl/Lv0wO9
DEPLOYMENT TYPE
PUBLISH FROM DESIGNER
https://helpx.adobe.com/dreamweaver
NOT DEPLOYMENT
EDIT CODE ON PRODUCTION
http://transithistory.org/ccreynolds/page.php-wordpress-code-i16.jpg
https://www.flickr.com/photos/courtneyrian/5750960959
ALL IT TAKES IS 1 MISSED STEP
RITUAL
Navajo Fire Dance by William R Leigh
HOW MANY PROJECTS DO YOU HAVE?
WE CAN FIX THIS!
COMPUTERS!
War Games
COMPUTERS!
War Games
FEELINGS TO AVOID
LET’S GO FROM THISburkewilliamsspa - http://goo.gl/tzLixX
Big Bang Theory
FEELINGS TO AVOID
LET’S GO FROM THISburkewilliamsspa - http://goo.gl/tzLixX
Big Bang Theory
http://www.manageware.co.il/tools/portfolio/auto-deploy https://flic.kr/p/bP9xfc
http://www.manageware.co.il/tools/portfolio/auto-deploy https://flic.kr/p/bP9xfc
WITH COMPUTERS
OUR PROCESSES BECOME…
▸ Rapid
▸ Reliable
▸ Repeatable
ADVANTAGES
▸ Improved software or product quality
▸ Higher confidence
▸ Better quality of life
MINUTIA
QUALITY
VALUE
VALUECONTINUOUS DELIVERY
Martin Fowler http://martinfowler.com/bliki/FrequencyReducesDifficulty.html
SO HOW DO WE GET THERE?
CONTINUOUS INTEGRATION
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
CONTINUOUS INTEGRATION
MARTIN FOWLER'S BULLET POINTS:
CONTINUOUS INTEGRATION
MARTIN FOWLER'S BULLET POINTS:
CONTINUOUS INTEGRATION
MARTIN FOWLER'S BULLET POINTS:
▸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:
▸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:
▸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:
▸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:
▸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:
▸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:
▸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:
▸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:
DEMO - CI
CONTINUOUS INTEGRATION
CI TOOLS
▸ TeamCity
▸ Jenkins
▸ TravisCI
▸ Bamboo
▸ Visual Studio Team Services
▸ CircleCI
▸ Codeship
▸ BuildMaster
CONTINUOUS DEPLOYMENT
CONTINUOUS DEPLOYMENT
CONTINUOUS DEPLOYMENT
CONTINUOUS DELIVERY
CONTINUOUS DELIVERY
CHANGE IN MINDSET
@thisisnkp https://twitter.com/lukegb/status/539744763071979520
CONTINUOUS DELIVERY
CHANGE IN MINDSET
/u/CodeTheInternet https://redd.it/2xxstj
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
DEMO - CD
CONTINUOUS DEPLOYMENT - CONTINUOUS DELIVERY
TOOLS
▸ Octopus Deploy
▸ Chef
▸ Ansible
▸ Go
▸ Codeship
▸ ElectricFlow
▸ VSTS
NO PRESSURE!
QUESTIONS?
THANK YOU!Stephen Garrett
Senior App Services Manager
Campus Services - Information Technology Group
Georgia Institute of Technology