continuous deployment @ tweakers developers summit
TRANSCRIPT
![Page 1: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/1.jpg)
DEPLOYMENT.@ Coolblue.
![Page 2: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/2.jpg)
PAUL.Technical Pathfinder
![Page 3: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/3.jpg)
DEVELOPMENT
![Page 4: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/4.jpg)
187
![Page 5: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/5.jpg)
30TEAMS
![Page 6: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/6.jpg)
![Page 7: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/7.jpg)
![Page 8: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/8.jpg)
DEPLOYING SOFTWARE.Delivering packaged high quality software on servers.
![Page 9: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/9.jpg)
• +/- 50 deploys per day on all platforms
• Single button deployment
• Developers do their own deployment
FACTS AND FIGURES.
![Page 10: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/10.jpg)
GATHER LEARNINGS FAST.By releasing often and quick.
![Page 11: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/11.jpg)
LANGUAGE AGNOSTIC.Same principles apply.
![Page 12: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/12.jpg)
DEVELOPING FEATURE 'X'.Smiling customers.
![Page 13: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/13.jpg)
UNIT TESTS.All code is guilty, until proven otherwise.
![Page 14: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/14.jpg)
CODING STANDARDS.Rules may apply.
![Page 15: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/15.jpg)
More Octocats at https://octodex.github.com/
![Page 16: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/16.jpg)
FORKS.Personal cutlery.
![Page 17: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/17.jpg)
GITHUB FLOW.Fork & Pull model.
![Page 18: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/18.jpg)
PULL REQUESTS.Share, review and discuss.
![Page 19: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/19.jpg)
PULL REQUESTS.Small commits, small context.
![Page 20: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/20.jpg)
TEAM CHECK.None of us is as smart as all of us.
![Page 21: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/21.jpg)
QUALITY CONTROL.Check standards have been met.
![Page 22: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/22.jpg)
BUILD SERVER.Construction completed.
![Page 23: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/23.jpg)
TEAMCITY.Central point of inspection and deployment.
![Page 24: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/24.jpg)
BUILD CHAINS.Sequence of build steps with specific purpose.
![Page 25: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/25.jpg)
BUILD SCRIPTS.Describe automation workflow.
![Page 26: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/26.jpg)
![Page 27: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/27.jpg)
RECYCLE YOUR CONFIGURATIONS.Create a default for all projects and allow overrides.
![Page 28: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/28.jpg)
BUILD CHAINS.Sequence of builds with specific purpose.
![Page 29: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/29.jpg)
BUILD STEP 1.Continuous inspection.
![Page 30: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/30.jpg)
• Automated tests • Unit testing • Functional testing
• Static code analysers • Lint checkers • Code duplication checkers • Code sniffers • Code metrics
QUALITY ASSURANCE.
![Page 31: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/31.jpg)
BE LAZY; YOU DON’T HAVE TO DO IT YOURSELFContinuous inspection platform are becoming a service.
![Page 32: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/32.jpg)
REPORTING ON EACH PULL REQUEST.Integrating all information available.
![Page 33: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/33.jpg)
Examples:
• Scrutinizer
• SonarSource
• Codacy
CONTINUOUS INSPECTION PLATFORMS.
![Page 34: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/34.jpg)
MERGE PULL REQUEST.Integrate into the main repository.
![Page 35: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/35.jpg)
REMEMBER GITHUB FLOW.Merge it in the master branch of the original repo.
![Page 36: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/36.jpg)
ACHIEVEMENT.Continuous integration.
![Page 37: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/37.jpg)
BUILD STEP 2: PACKAGING.Not a box of chocolates..
![Page 38: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/38.jpg)
• Close to the OS • RPMs distributed via own repository • Installed/Updated via OS package manager
• Updates triggered via puppet run
LINUX.
![Page 39: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/39.jpg)
• Control over file permissions & rights • Clean uninstallation • Package managers are simple and well-known • Easily distributed • No added complexity of third-party tools
RPMS ARE POWERFUL.
![Page 40: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/40.jpg)
• Octopus Deploy so we can deploy: • Web Services • Windows services • Desktop applications
WINDOWS.
![Page 41: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/41.jpg)
OCTOPUS DEPLOY.Pushing packages to servers.
![Page 42: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/42.jpg)
BUILD STEP 3.Publish to test environment.
![Page 43: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/43.jpg)
ACHIEVEMENT.Continuous delivery.
![Page 44: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/44.jpg)
BUILD STEP 4.Publish to acceptance environment.
![Page 45: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/45.jpg)
BUILD STEP 5.Publish to production environment.
![Page 46: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/46.jpg)
ACHIEVEMENT.Continuous deployment.
![Page 47: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/47.jpg)
ACHIEVEMENT.Continuous deployment.
![Page 48: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/48.jpg)
CONTINUOUS.delivery vs deployment
![Page 49: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/49.jpg)
• Automated inspection • Automated delivery
• Except production • May have automated post deployment tests
Every change is proven to be deployable!Deployment after manual trigger
CONTINUOUS DELIVERY.
![Page 50: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/50.jpg)
• Continuous delivery • Automated deployment to production • Has automated post-deploy tests
CONTINUOUS DEPLOYMENT.
![Page 51: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/51.jpg)
POST-DEPLOYTests
![Page 52: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/52.jpg)
• Website still up? • Does the functionality work?
• New functionality • Old functionality
• especially old functionality (regression)
• Haven’t I killed the infrastructure?
CHECK FOR SUCCESS.
![Page 53: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/53.jpg)
AUTOMATE SMOKE TESTS.Validate essentials are correct.
![Page 54: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/54.jpg)
MONITORING.Monitor infrastructure state.
![Page 55: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/55.jpg)
APPLICATION STATISTICS.Measure everything.
give you uplet you downrun you down & desert youmake you crysay goodbyetell a lie & hurt you
![Page 56: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/56.jpg)
HEARTBEATIs your application still alive?
![Page 57: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/57.jpg)
FUNCTIONAL TESTS.Automated regression testing.
![Page 58: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/58.jpg)
APPROACHESautomated deployment
![Page 59: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/59.jpg)
DEPLOY & REVERT.Revert in case of problems.
![Page 60: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/60.jpg)
PRE-DEPLOYMENT TESTS.Run post-deploy test on acceptance environment.
![Page 61: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/61.jpg)
CANARY DEPLOYMENT.Deploy to part of a cluster and test in production.
![Page 62: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/62.jpg)
• Deploy to part of the cluster
• X% percentage live
• A/B testing (?)
CANARY DEPLOYMENT.
![Page 63: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/63.jpg)
ACHIEVEMENT.Continuous deployment.
![Page 64: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/64.jpg)
DEVELOP, TEST, DEPLOY, REPEAT.
Review & testWrite code
Commit &
push
Open pull
request
Build
Package
Staging
Production
Post-deploy
tests
Post-deploytests
![Page 65: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/65.jpg)
PROBLEM / CHALLENGE.Reverting data/data structures.
![Page 66: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/66.jpg)
NUTS.Are you.
![Page 67: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/67.jpg)
NO TESTERS NO QUARANTINE
NO 1000+ PAGE TEST SCRIPT NO SIGN-OFF
![Page 68: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/68.jpg)
TAKING RISKS.What suits your comfort zone.
![Page 69: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/69.jpg)
GATHER LEARNINGS FAST.By releasing often and quick.
![Page 70: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/70.jpg)
WAIT A MINUTEWhat do you actually have in place
![Page 71: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/71.jpg)
• Automated smoke tests on acceptance environment
• User acceptance tests (AKA The PO test)
POST-DEPLOY TESTS @ COOLBLUE.
![Page 72: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/72.jpg)
REVIEWING OUR BUILD PIPELINE.Build steps in our continuous delivery currently.
![Page 73: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/73.jpg)
TESTING DEPLOY & REVERTA few services have continuous deployment as a test.
![Page 74: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/74.jpg)
CANARY DEPLOYMENT.Feature switches for the win.
![Page 75: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/75.jpg)
CONTINUOUS DELIVERY.
![Page 76: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/76.jpg)
FEEDBACK.You got something to say.
![Page 77: Continuous deployment @ Tweakers Developers Summit](https://reader035.vdocuments.us/reader035/viewer/2022070510/58abdec81a28ab212a8b5e05/html5/thumbnails/77.jpg)
• @pderaaij
• http://slideshare.net/pderaaij
• http://devblog.coolblue.nl/
• http://careersatcoolblue.com/
THANK YOU.