77
DEPLOYMENT. @ Coolblue.

Continuous deployment @ Tweakers Developers Summit

Embed Size (px)

Citation preview

Page 1: Continuous deployment  @ Tweakers Developers Summit

DEPLOYMENT.@ Coolblue.

Page 2: Continuous deployment  @ Tweakers Developers Summit

PAUL.Technical Pathfinder

Page 3: Continuous deployment  @ Tweakers Developers Summit

DEVELOPMENT

Page 4: Continuous deployment  @ Tweakers Developers Summit

187

Page 5: Continuous deployment  @ Tweakers Developers Summit

30TEAMS

Page 6: Continuous deployment  @ Tweakers Developers Summit
Page 7: Continuous deployment  @ Tweakers Developers Summit
Page 8: Continuous deployment  @ Tweakers Developers Summit

DEPLOYING SOFTWARE.Delivering packaged high quality software on servers.

Page 9: Continuous deployment  @ Tweakers Developers Summit

• +/- 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

GATHER LEARNINGS FAST.By releasing often and quick.

Page 11: Continuous deployment  @ Tweakers Developers Summit

LANGUAGE AGNOSTIC.Same principles apply.

Page 12: Continuous deployment  @ Tweakers Developers Summit

DEVELOPING FEATURE 'X'.Smiling customers.

Page 13: Continuous deployment  @ Tweakers Developers Summit

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

Page 14: Continuous deployment  @ Tweakers Developers Summit

CODING STANDARDS.Rules may apply.

Page 15: Continuous deployment  @ Tweakers Developers Summit

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

Page 16: Continuous deployment  @ Tweakers Developers Summit

FORKS.Personal cutlery.

Page 17: Continuous deployment  @ Tweakers Developers Summit

GITHUB FLOW.Fork & Pull model.

Page 18: Continuous deployment  @ Tweakers Developers Summit

PULL REQUESTS.Share, review and discuss.

Page 19: Continuous deployment  @ Tweakers Developers Summit

PULL REQUESTS.Small commits, small context.

Page 20: Continuous deployment  @ Tweakers Developers Summit

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

Page 21: Continuous deployment  @ Tweakers Developers Summit

QUALITY CONTROL.Check standards have been met.

Page 22: Continuous deployment  @ Tweakers Developers Summit

BUILD SERVER.Construction completed.

Page 23: Continuous deployment  @ Tweakers Developers Summit

TEAMCITY.Central point of inspection and deployment.

Page 24: Continuous deployment  @ Tweakers Developers Summit

BUILD CHAINS.Sequence of build steps with specific purpose.

Page 25: Continuous deployment  @ Tweakers Developers Summit

BUILD SCRIPTS.Describe automation workflow.

Page 26: Continuous deployment  @ Tweakers Developers Summit
Page 27: Continuous deployment  @ Tweakers Developers Summit

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

Page 28: Continuous deployment  @ Tweakers Developers Summit

BUILD CHAINS.Sequence of builds with specific purpose.

Page 29: Continuous deployment  @ Tweakers Developers Summit

BUILD STEP 1.Continuous inspection.

Page 30: Continuous deployment  @ Tweakers Developers Summit

• 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

BE LAZY; YOU DON’T HAVE TO DO IT YOURSELFContinuous inspection platform are becoming a service.

Page 32: Continuous deployment  @ Tweakers Developers Summit

REPORTING ON EACH PULL REQUEST.Integrating all information available.

Page 33: Continuous deployment  @ Tweakers Developers Summit

Examples:

• Scrutinizer

• SonarSource

• Codacy

CONTINUOUS INSPECTION PLATFORMS.

Page 34: Continuous deployment  @ Tweakers Developers Summit

MERGE PULL REQUEST.Integrate into the main repository.

Page 35: Continuous deployment  @ Tweakers Developers Summit

REMEMBER GITHUB FLOW.Merge it in the master branch of the original repo.

Page 36: Continuous deployment  @ Tweakers Developers Summit

ACHIEVEMENT.Continuous integration.

Page 37: Continuous deployment  @ Tweakers Developers Summit

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

Page 38: Continuous deployment  @ Tweakers Developers Summit

• 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

• 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

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

WINDOWS.

Page 41: Continuous deployment  @ Tweakers Developers Summit

OCTOPUS DEPLOY.Pushing packages to servers.

Page 42: Continuous deployment  @ Tweakers Developers Summit

BUILD STEP 3.Publish to test environment.

Page 43: Continuous deployment  @ Tweakers Developers Summit

ACHIEVEMENT.Continuous delivery.

Page 44: Continuous deployment  @ Tweakers Developers Summit

BUILD STEP 4.Publish to acceptance environment.

Page 45: Continuous deployment  @ Tweakers Developers Summit

BUILD STEP 5.Publish to production environment.

Page 46: Continuous deployment  @ Tweakers Developers Summit

ACHIEVEMENT.Continuous deployment.

Page 47: Continuous deployment  @ Tweakers Developers Summit

ACHIEVEMENT.Continuous deployment.

Page 48: Continuous deployment  @ Tweakers Developers Summit

CONTINUOUS.delivery vs deployment

Page 49: Continuous deployment  @ Tweakers Developers Summit

• 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

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

CONTINUOUS DEPLOYMENT.

Page 51: Continuous deployment  @ Tweakers Developers Summit

POST-DEPLOYTests

Page 52: Continuous deployment  @ Tweakers Developers Summit

• 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

AUTOMATE SMOKE TESTS.Validate essentials are correct.

Page 54: Continuous deployment  @ Tweakers Developers Summit

MONITORING.Monitor infrastructure state.

Page 55: Continuous deployment  @ Tweakers Developers Summit

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

HEARTBEATIs your application still alive?

Page 57: Continuous deployment  @ Tweakers Developers Summit

FUNCTIONAL TESTS.Automated regression testing.

Page 58: Continuous deployment  @ Tweakers Developers Summit

APPROACHESautomated deployment

Page 59: Continuous deployment  @ Tweakers Developers Summit

DEPLOY & REVERT.Revert in case of problems.

Page 60: Continuous deployment  @ Tweakers Developers Summit

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

Page 61: Continuous deployment  @ Tweakers Developers Summit

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

Page 62: Continuous deployment  @ Tweakers Developers Summit

• Deploy to part of the cluster

• X% percentage live

• A/B testing (?)

CANARY DEPLOYMENT.

Page 63: Continuous deployment  @ Tweakers Developers Summit

ACHIEVEMENT.Continuous deployment.

Page 64: Continuous deployment  @ Tweakers Developers Summit

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

PROBLEM / CHALLENGE.Reverting data/data structures.

Page 66: Continuous deployment  @ Tweakers Developers Summit

NUTS.Are you.

Page 67: Continuous deployment  @ Tweakers Developers Summit

NO TESTERS NO QUARANTINE

NO 1000+ PAGE TEST SCRIPT NO SIGN-OFF

Page 68: Continuous deployment  @ Tweakers Developers Summit

TAKING RISKS.What suits your comfort zone.

Page 69: Continuous deployment  @ Tweakers Developers Summit

GATHER LEARNINGS FAST.By releasing often and quick.

Page 70: Continuous deployment  @ Tweakers Developers Summit

WAIT A MINUTEWhat do you actually have in place

Page 71: Continuous deployment  @ Tweakers Developers Summit

• Automated smoke tests on acceptance environment

• User acceptance tests (AKA The PO test)

POST-DEPLOY TESTS @ COOLBLUE.

Page 72: Continuous deployment  @ Tweakers Developers Summit

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

Page 73: Continuous deployment  @ Tweakers Developers Summit

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

Page 74: Continuous deployment  @ Tweakers Developers Summit

CANARY DEPLOYMENT.Feature switches for the win.

Page 75: Continuous deployment  @ Tweakers Developers Summit

CONTINUOUS DELIVERY.

Page 76: Continuous deployment  @ Tweakers Developers Summit

FEEDBACK.You got something to say.

Page 77: Continuous deployment  @ Tweakers Developers Summit

[email protected]

• @pderaaij

• http://slideshare.net/pderaaij

• http://devblog.coolblue.nl/

• http://careersatcoolblue.com/

THANK YOU.