Continuous deployment ASAS 2016

68
DEPLOYMENT. @ Coolblue.

Transcript of Continuous deployment ASAS 2016

Page 1: Continuous deployment ASAS 2016

DEPLOYMENT.@ Coolblue.

Page 2: Continuous deployment ASAS 2016

PAUL.Technical Pathfinder

Page 3: Continuous deployment ASAS 2016

DEPLOYING SOFTWARE.Delivering packaged high quality software on servers.

Page 4: Continuous deployment ASAS 2016

• +/- 50 deploys per day on all platforms

• Single button deployment

• Developers do their own deployment

FACTS AND FIGURES.

Page 5: Continuous deployment ASAS 2016

LANGUAGE AGNOSTIC.Same principles apply.

Page 6: Continuous deployment ASAS 2016

DEVELOPING FEATURE 'X'.To make the customer smile.

Page 7: Continuous deployment ASAS 2016

UNIT TESTS.All code is guilty, until proven otherwise.

Page 8: Continuous deployment ASAS 2016

CODING STANDARDS.Rules may apply.

Page 9: Continuous deployment ASAS 2016

More Octocats at https://octodex.github.com/

Page 10: Continuous deployment ASAS 2016

GITHUB FLOW.Proven technique.

Page 11: Continuous deployment ASAS 2016

FORKS.Personal cutlery.

Page 12: Continuous deployment ASAS 2016

PULL REQUESTS.Share, review and discuss.

Page 13: Continuous deployment ASAS 2016

PULL REQUESTS.Small commits, small context.

Page 14: Continuous deployment ASAS 2016

TEAM CHECK.None of us is as smart as all of us.

Page 15: Continuous deployment ASAS 2016

QUALITY CONTROL.Check standards have been met.

Page 16: Continuous deployment ASAS 2016

BUILD SERVER.Construction completed.

Page 17: Continuous deployment ASAS 2016

TEAMCITY.Central point of inspection and deployment.

Page 18: Continuous deployment ASAS 2016

BUILD CHAINS.Sequence of builds with specific purpose.

Page 19: Continuous deployment ASAS 2016

BUILD SCRIPTS.Describe automation workflow.

Page 20: Continuous deployment ASAS 2016
Page 21: Continuous deployment ASAS 2016

RECYCLE YOUR CONFIGURATIONS.Create a default for all projects and allow overrides.

Page 22: Continuous deployment ASAS 2016

BUILD CHAINS.Sequence of builds with specific purpose.

Page 23: Continuous deployment ASAS 2016

BUILD STEP 1.Continuous inspection.

Page 24: Continuous deployment ASAS 2016

• Automated tests • Unit testing • Functional testing

• Static code analysers • Lint checkers • Code duplication checkers • Code sniffers • Code metrics

QUALITY ASSURANCE.

Page 25: Continuous deployment ASAS 2016

BE LAZY; YOU DON’T HAVE TO DO IT YOURSELFScrutinizer offers a continuous inspection platform.

Page 26: Continuous deployment ASAS 2016

REPORTING ON EACH COMMIT.Integrating all information available.

Page 27: Continuous deployment ASAS 2016

Examples:

• Scrutinizer

• SonarSource

• Codacy

CONTINUOUS INSPECTION PLATFORMS.

Page 28: Continuous deployment ASAS 2016

MERGE PULL REQUEST.Integrate into the main repository.

Page 29: Continuous deployment ASAS 2016

REMEMBER GITHUB FLOW.In our case its merged on master branch of forked repo.

Page 30: Continuous deployment ASAS 2016

ACHIEVEMENT.Continuous integration.

Page 31: Continuous deployment ASAS 2016

BUILD STEP 2: PACKAGING.Not a box of chocolates..

Page 32: Continuous deployment ASAS 2016

• Close to the OS • RPMs on package repository • Installed/Updated via OS package manager

• Updates triggered via puppet

LINUX.

Page 33: Continuous deployment ASAS 2016

• 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 34: Continuous deployment ASAS 2016

• Octopus Deploy so we can deploy: • Web Services • Windows services • Desktop applications

WINDOWS.

Page 35: Continuous deployment ASAS 2016

OCTOPUS DEPLOY.Pushing packages to servers.

Page 36: Continuous deployment ASAS 2016

BUILD STEP 3.Publish to test environment.

Page 37: Continuous deployment ASAS 2016

ACHIEVEMENT.Continuous delivery.

Page 38: Continuous deployment ASAS 2016

BUILD STEP 4: PUBLISH TO ACCEPT.Publish to accept environment.

Page 39: Continuous deployment ASAS 2016

BUILD STEP 5.Publish to production environment.

Page 40: Continuous deployment ASAS 2016

ACHIEVEMENT.Continuous deployment.

Page 41: Continuous deployment ASAS 2016

ACHIEVEMENT.Continuous deployment.

Page 42: Continuous deployment ASAS 2016

CONTINUOUS.delivery vs deployment

Page 43: Continuous deployment ASAS 2016

• 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 44: Continuous deployment ASAS 2016

• Continuous delivery • Automated deployment to production • Has automated post-deploy tests

CONTINUOUS DEPLOYMENT.

Page 45: Continuous deployment ASAS 2016

POST-DEPLOYTests

Page 46: Continuous deployment ASAS 2016

• 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 47: Continuous deployment ASAS 2016

AUTOMATE.Post-deploy smoke test.

Page 48: Continuous deployment ASAS 2016

MONITORING.Monitor infrastructure state.

Page 49: Continuous deployment ASAS 2016

APPLICATION STATISTICS.Measure everything.

give you uplet you downrun you down & desert youmake you crysay goodbyetell a lie & hurt you

Page 50: Continuous deployment ASAS 2016

FUNCTIONAL TESTS.Automated regression testing.

Page 51: Continuous deployment ASAS 2016

APPROACHESautomated deployment

Page 52: Continuous deployment ASAS 2016

DEPLOY & REVERT.Revert in case of problems.

Page 53: Continuous deployment ASAS 2016

PRE-DEPLOYMENT TESTS.Run post-deploy test on acceptance environment.

Page 54: Continuous deployment ASAS 2016

CANARY DEPLOYMENT.Deploy to part of a cluster and test in production.

Page 55: Continuous deployment ASAS 2016

• Deploy to part of the cluster

• X% percentage live

• A/B testing (?)

CANARY DEPLOYMENT.

Page 56: Continuous deployment ASAS 2016

DEVELOP, TEST, DEPLOY, REPEAT.

Review & testWrite code

Commit &

push

Open pull

request

Build

Package

Staging

Production

Post-deploy

tests

Post-deploytests

Page 57: Continuous deployment ASAS 2016

ACHIEVEMENT.Continuous deployment.

Page 58: Continuous deployment ASAS 2016

PROBLEM / CHALLENGE.Reverting data/data structures.

Page 59: Continuous deployment ASAS 2016

NUTS.Are you.

Page 60: Continuous deployment ASAS 2016

NO TESTERS NO QUARANTINE

NO 1000+ PAGE TEST SCRIPT NO SIGN-OFF

Page 61: Continuous deployment ASAS 2016

TAKING RISKS.What suits your comfort zone.

Page 62: Continuous deployment ASAS 2016

WAIT A MINUTEWhat do you actually have in place

Page 63: Continuous deployment ASAS 2016

• Automated smoke tests on acceptance environment

• User acceptance tests (AKA The PO test)

POST-DEPLOY TESTS @ COOLBLUE.

Page 64: Continuous deployment ASAS 2016

REVIEWING OUR BUILD PIPELINE.Build steps in our continuous delivery currently.

Page 65: Continuous deployment ASAS 2016

TESTING DEPLOY & REVERTA few services have continuous deployment as a test.

Page 66: Continuous deployment ASAS 2016

CONTINUOUS DELIVERY.

Page 67: Continuous deployment ASAS 2016

FEEDBACK.You got something to say.

Page 68: Continuous deployment ASAS 2016

[email protected]

• @pderaaij

• http://slideshare.net/pderaaij

• http://devblog.coolblue.nl/

• http://careersatcoolblue.com/

THANK YOU.