continuous deployment @ coolblue, talk @ leaseweb techsummit

55
DEPLOYMENT. @ Coolblue.

Upload: paul-de-raaij

Post on 07-Aug-2015

440 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

DEPLOYMENT.@ Coolblue.

Page 2: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

PAUL.DevOp / Team lead

Page 3: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

•One of the largest e-commerce companies in the Benelux

•>1k employees, 334 webshops, 7 physical stores and 2 warehouses

•All mission-critical software developed in-house

•100% growth every 20 months, so scalability matters

COOLBLUE.

Page 4: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

DEPLOYING SOFTWARE.Delivering packaged high quality software on servers.

Page 5: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• +/- 15 deploys per day on web platform

• Single button deployment

• Developers do their own deployment

FACTS AND FIGURES.

Page 6: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

LANGUAGE AGNOSTIC.Same principles apply.

Page 7: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

THE ROAD AHEAD.From new feature to deployment.

Page 8: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

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

Page 9: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

CODING STANDARDS.Rules may apply.

Page 10: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit
Page 11: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

FORKS.Personal cutlery.

Page 12: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

PULL REQUESTS.Share, review and discuss.

Page 13: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

PULL REQUESTS.Small commits, small context.

Page 14: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

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

Page 15: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

QUALITY CONTROL.Check standards have been met.

Page 16: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD SERVER.Construction completed.

Page 17: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

TEAMCITY.Central point of inspection and deployment.

Page 18: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD CHAINS.Sequence of builds with specific purpose.

Page 19: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD SCRIPTS.Automate workflow.

Page 20: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit
Page 21: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD STEP 1.Continuous inspection..

Page 22: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Automated tests • Unit testing • Functional testing

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

QUALITY ASSURANCE.

Page 23: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

MERGE PULL REQUEST.Integrate into the main repository..

Page 24: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

ACHIEVEMENT.Continuous integration.

Page 25: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

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

Page 26: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Close to the OS

• RPMs on package repository

• Installed/Updated via OS package manager • Updates triggered via puppet

LINUX.

Page 27: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• 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 28: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Octopus Deploy • Web Services • Desktop applications

• Workflow: • Builds NuGet packages • Deploys NuGet packages using tentacles • Installs them

WINDOWS.

Page 29: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

OCTOPUS DEPLOY.Pushing packages to servers.

Page 30: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD STEP 3.Publish to test environment.

Page 31: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

ACHIEVEMENT.Continuous delivery.

Page 32: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

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

Page 33: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

BUILD STEP 5.Publish to production environment.

Page 34: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

ACHIEVEMENT.Continuous deployment.

Page 35: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

ACHIEVEMENT.Continuous deployment.

Page 36: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

CONTINUOUS.delivery vs deployment

Page 37: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Automated inspection

• Automated delivery • Except production

CONTINUOUS DELIVERY.

Page 38: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Continuous delivery

• Automated deployment to production

• Automated post-deploy tests

CONTINUOUS DEPLOYMENT.

Page 39: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

DEVELOP, TEST, DEPLOY, REPEAT.

Review & testWrite code

Commit & push

Open pull request

Build

Package

Staging

Production

Post-deploy tests

Page 40: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

POST-DEPLOYTests

Page 41: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

• Website still up?

• Working functionality?

CHECK FOR SUCCESS.

Page 42: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

AUTOMATE.Post-deploy smoke test.

Page 43: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

MONITORING.Monitor application state.

Page 44: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

STATISTICS.Measure everything.

Page 45: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

FUNCTIONAL TESTS.Automated regression testing..

Page 46: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

APPROACHESautomated deployment

Page 47: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

DEPLOY & REVERT.Revert in case of problems.

Page 48: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

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

Page 49: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

CANARY DEPLOYMENT.Deploy to a cluster and do a live test.

Page 50: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

DEVELOP, TEST, DEPLOY, REPEAT.

Review & testWrite code

Commit & push

Open pull request

Build

Package

Staging

Production

Post-deploy tests

Post-deploytests

Page 51: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

ACHIEVEMENT.Continuous deployment.

Page 52: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

PROBLEM / CHALLENGE.Reverting data/data structures..

Page 53: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

FEEDBACK.Please.

Page 54: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

WE HAVE A BEER FOR YOU.Drinks @ 17:45.

Page 55: Continuous deployment @ Coolblue, talk @  LeaseWeb TechSummit

[email protected]

• @pderaaij

• http://slideshare.net/paulderaaij

• http://devblog.coolblue.nl/

• http://careersatcoolblue.com/

THANK YOU.