Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
DEPLOYMENT.
@ Coolblue.
PAUL.
Technical Pathfinder
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...
LANGUAGE AGNOSTIC.
Same principles apply.
DEVELOPING FEATURE 'X'.
To make the customer smile.
UNIT TESTS.All code is guilty, until proven otherwise.
CODING STANDARDS.
Rules may apply.
More Octocats at https://octodex.github.com/
GITHUB FLOW.
Proven technique.
FORKS.
Personal cutlery.
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 builds 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
Scrutinizer offers a continuous inspection platform.
REPORTING ON EACH COMMIT.
Integrating all information available.
Examples:
• Scrutinizer
• SonarSource
• Codacy
CONTINUOUS INSPECTION PLATFORMS.
MERGE PULL REQUEST.
Integrate into the main repository.
REMEMBER GITHUB FLOW.
In our case its merged on master branch of forked repo.
ACHIEVEMENT.
Continuous integration.
BUILD STEP 2: PACKAGING.
Not a box of chocolates..
• Close to the OS
• RPMs on package repository
• Installed/Updated via OS package manager
• Updates triggered via puppet
L...
• 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 ACCEPT.
Publish to accept 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.
Post-deploy smoke test.
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...
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.
DEVELOP, TEST, DEPLOY, REPEAT.
Review & testWrite code
Commit &
push
Open pull
request
Build
Package
Staging
Production
Po...
ACHIEVEMENT.
Continuous deployment.
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.
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.
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 ASAS 2016
Nächste SlideShare
Wird geladen in …5
×

Continuous deployment ASAS 2016

307 Aufrufe

Veröffentlicht am

Slides of continuous deployment talk held at ASAS 2016 conference.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Continuous deployment ASAS 2016

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

×