Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DEPLOYMENT.
@ Coolblue.
PAUL.
Technical Pathfinder
DEVELOPMENT
187
30

TEAMS
DEPLOYING SOFTWARE.
Delivering packaged high quality software on servers.
• +/- 50 deploys per day on all platforms
• Single button deployment
• Developers do their own deployment
FACTS AND FIGURE...
GATHER LEARNINGS FAST.
By releasing often and quick.
LANGUAGE AGNOSTIC.
Same principles apply.
DEVELOPING FEATURE 'X'.
Smiling customers.
UNIT TESTS.All code is guilty, until proven otherwise.
CODING STANDARDS.
Rules may apply.
More Octocats at https://octodex.github.com/
FORKS.
Personal cutlery.
GITHUB FLOW.
Fork & Pull model.
PULL REQUESTS.
Share, review and discuss.
PULL REQUESTS.
Small commits, small context.
TEAM CHECK.
None of us is as smart as all of us.
QUALITY CONTROL.
Check standards have been met.
BUILD SERVER.
Construction completed.
TEAMCITY.
Central point of inspection and deployment.
BUILD CHAINS.
Sequence of build steps with specific purpose.
BUILD SCRIPTS.
Describe automation workflow.
RECYCLE YOUR CONFIGURATIONS.
Create a default for all projects and allow overrides.
BUILD CHAINS.
Sequence of builds with specific purpose.
BUILD STEP 1.
Continuous inspection.
• Automated tests
• Unit testing
• Functional testing
• Static code analysers
• Lint checkers
• Code duplication checkers
...
BE LAZY; YOU DON’T HAVE TO DO IT YOURSELF
Continuous inspection platform are becoming a service.
REPORTING ON EACH PULL REQUEST.
Integrating all information available.
Examples:
• Scrutinizer
• SonarSource
• Codacy
CONTINUOUS INSPECTION PLATFORMS.
MERGE PULL REQUEST.
Integrate into the main repository.
REMEMBER GITHUB FLOW.
Merge it in the master branch of the original repo.
ACHIEVEMENT.
Continuous integration.
BUILD STEP 2: PACKAGING.
Not a box of chocolates..
• Close to the OS
• RPMs distributed via own repository
• Installed/Updated via OS package manager
• Updates triggered via...
• Control over file permissions & rights
• Clean uninstallation
• Package managers are simple and well-known
• Easily dist...
• Octopus Deploy so we can deploy:
• Web Services
• Windows services
• Desktop applications
WINDOWS.
OCTOPUS DEPLOY.
Pushing packages to servers.
BUILD STEP 3.
Publish to test environment.
ACHIEVEMENT.
Continuous delivery.
BUILD STEP 4.
Publish to acceptance environment.
BUILD STEP 5.
Publish to production environment.
ACHIEVEMENT.
Continuous deployment.
ACHIEVEMENT.
Continuous deployment.
CONTINUOUS.
delivery vs deployment
• Automated inspection
• Automated delivery
• Except production
• May have automated post deployment tests
Every change is...
• Continuous delivery
• Automated deployment to production
• Has automated post-deploy tests
CONTINUOUS DEPLOYMENT.
POST-DEPLOY
Tests
• Website still up?
• Does the functionality work?
• New functionality
• Old functionality
• especially old functionality ...
AUTOMATE SMOKE TESTS.
Validate essentials are correct.
MONITORING.
Monitor infrastructure state.
APPLICATION STATISTICS.
Measure everything.
give you up
let you down
run you down & desert you
make you cry
say goodbye
te...
HEARTBEAT
Is your application still alive?
FUNCTIONAL TESTS.
Automated regression testing.
APPROACHES
automated deployment
DEPLOY & REVERT.
Revert in case of problems.
PRE-DEPLOYMENT TESTS.
Run post-deploy test on acceptance environment.
CANARY DEPLOYMENT.
Deploy to part of a cluster and test in production.
• Deploy to part of the cluster
• X% percentage live
• A/B testing (?)
CANARY DEPLOYMENT.
ACHIEVEMENT.
Continuous deployment.
DEVELOP, TEST, DEPLOY, REPEAT.
Review & testWrite code
Commit &
push
Open pull
request
Build
Package
Staging
Production
Po...
PROBLEM / CHALLENGE.
Reverting data/data structures.
NUTS.
Are you.
NO TESTERS
NO QUARANTINE

NO 1000+ PAGE TEST SCRIPT
NO SIGN-OFF
TAKING RISKS.
What suits your comfort zone.
GATHER LEARNINGS FAST.
By releasing often and quick.
WAIT A MINUTE
What do you actually have in place
• Automated smoke tests on acceptance environment
• User acceptance tests (AKA The PO test)
POST-DEPLOY TESTS @ COOLBLUE.
REVIEWING OUR BUILD PIPELINE.
Build steps in our continuous delivery currently.
TESTING DEPLOY & REVERT
A few services have continuous deployment as a test.
CANARY DEPLOYMENT.
Feature switches for the win.
CONTINUOUS DELIVERY.
FEEDBACK.
You got something to say.
• p.deraaij@coolblue.nl
• @pderaaij
• http://slideshare.net/pderaaij
• http://devblog.coolblue.nl/
• http://careersatcoolb...
Continuous deployment  @ Tweakers Developers Summit
Continuous deployment  @ Tweakers Developers Summit
Continuous deployment  @ Tweakers Developers Summit
Upcoming SlideShare
Loading in …5
×

Continuous deployment @ Tweakers Developers Summit

682 views

Published on

Slides of my presentation @ Tweakers Developers Summit how we have implemented continuous deployment at Coolblue.

Published in: Technology
  • Be the first to comment

Continuous deployment @ Tweakers Developers Summit

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

×