crafting a robust deployment
play

Crafting a robust deployment pipeline in finance Boyan Mihaylov - PowerPoint PPT Presentation

Crafting a robust deployment pipeline in finance Boyan Mihaylov Software architect and developer @boyanio https://boyan.io Establish in-house development at a pension fund @boyanio How does it feel inside a financial institution? @boyanio


  1. Crafting a robust deployment pipeline in finance Boyan Mihaylov Software architect and developer @boyanio https://boyan.io

  2. Establish in-house development at a pension fund @boyanio

  3. How does it feel inside a financial institution? @boyanio http://www.baystreetblog.com/wp-content/uploads/2016/01/7206414716_775221df73_o.jpg

  4. Regulations & compliance @boyanio

  5. No errors allowed @boyanio

  6. Long decision-making process @boyanio

  7. @boyanio https://blog.weekdone.com/team-goal-setting-questions-to-ask/

  8. Goal: delivering value to our members on a frequent basis @boyanio

  9. How does one create a development process from the scratch? @boyanio

  10. Start simple, stay simple as long as possible @boyanio https://www.ca.com/en/blog-highlight/wp-content/blogs.dir/2/files/sites/6/2016/10/GettyImages-598070812-legos.jpg

  11. Trunk-based development PR PR feature-a feature-b master 1.1.0 1.1.1 2.0.0 @boyanio

  12. Long-lived branches disguise the big picture @boyanio http://www.bbc.co.uk/london/travel/downloads/tube_map.gif

  13. “Continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day ” Wikipedia @boyanio https://en.wikipedia.org/wiki/Continuous_integration

  14. Continuous Integration Feedback </> Code Unit Push Build analysis tests Run VCS Watch @boyanio

  15. Always deployable https://cdn.vox-cdn.com/thumbor/FvSVfmTI5xV8JN74IAkp_R2dmtk=/0x0:2000x1333/1200x800/filters:focal(0x0:2000x1333)/cdn.vox- @boyanio cdn.com/uploads/chorus_image/image/49709579/Blue_Origin_New_Shepard_launch.0.0.jpg

  16. Continuous Integration Feedback </> Code Unit Push Build Package analysis tests Run VCS Watch @boyanio

  17. Fact 1. Continuous integration does not guarantee you built the right thing @boyanio

  18. We want X Let’s build Y @boyanio https://www.quora.com/How-do-I-develop-an-Agile-methodology-mindset-while-implementing-a-project

  19. Fact 2. Continuous integration does not guarantee you built the thing right @boyanio

  20. public class BasketTests { [Fact] public void ThrowsWhenNullIsPassedToAdd() { var basket = new Basket(); Assert.Throws<ArgumentNullException>( () => basket.Add(null)); } } @boyanio

  21. @boyanio

  22. Creating a development process means creating a development culture @boyanio

  23. Building trust @boyanio https://hackernoon.com/the-worlds-trust-issues-and-the-value-of-crypto-976bc1b2080

  24. Manual tests Manual tests GUI tests vs. Integration Automated tests tests Unit tests @boyanio

  25. Steps to perform: 1. Go to the homepage 2. Log in as a member 3. Go to the retirement page 4. Go through the online retirement process 5. Sign your choices Confirm: - you got a confirmation e-mail - there is a summary document in the archive - there is a update request in the core system @boyanio

  26. Using Gherkin syntax Feature: Retirement Scenario: Complete retirement procedure Given I am a member of the pension fund And I am 67 years old When I log in on the web portal And I navigate to the retirement self-service And I fill in my details And I sign my choices Then I should get a confirmation e-mail And I should see a copy of my choices in my archive And I should see my monthly pension payouts @boyanio

  27. @boyanio

  28. pro•duc•tion [pruh-duhk-shuhn] (n) 1. This complex system of application code, distributed services, servers, networking gear, etc., upon which we are going to try to carefully apply a complicated set of changes and hope that nothing goes wrong. Cross your finders…here goes. @boyanio https://www.slideshare.net/mikebrittain/principles-and-practices-in-continuous-deployment-at-etsy/

  29. @boyanio

  30. Manual deployment is dangerous https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/S8v_HKLYirmlowrd/videoblocks-builder-welds-parts-outdoors-installation-and-production-in-slow-motion-in-afternoon- @boyanio man-work-in-gloves-protective-clothing-in-the-pit-dangerous-manual-labor-outside-merge-structure-of-details_sufbahncl_thumbnail-full08.png

  31. Automated deployment to any environment Fetch Install Verify Provide package package installation feedback @boyanio

  32. Identical environment set-up @boyanio

  33. Build once, deploy everywhere @boyanio

  34. Octopus Deploy @boyanio

  35. Production deployment process • Deploy to a fictive-data test environment • Run automated UI tests • Promote to an acceptance test environment • Perform manual tests • Create RFC • Promote to production @boyanio

  36. How often shall we deploy to production? @boyanio

  37. The fear of deployment @boyanio https://pbs.twimg.com/media/DMuLK82V4AAd1Po.jpg

  38. When you fear something, you should do it often enough. Then it becomes trivial. @boyanio

  39. Days between deploying to Production 50 40 30 20 10 0 @boyanio

  40. Release Deploy The act of making single or The act of installing and multiple features available to a configuring a software wider audience package onto a target system @boyanio

  41. Feature toggles let you deploy often without releasing immediately OFF ON @boyanio

  42. Zero downtime deployment using blue-green deployment approach Version 1.1.0 Load balancer Version 1.0.0 @boyanio

  43. @boyanio https://flexagon.com/solutions/continuous-delivery/

  44. Q: Shall we move to Continuous Deployment? A: We can, but we don’t have to @boyanio

  45. How robust is the deployment pipeline? @boyanio

  46. The deployment pipeline supports the established agile practices and desired goals @boyanio https://hundred5.com

  47. Keep things simple Keep things identical Build trust in your delivery Automate the repeatable Don’t hype, make it work for you @boyanio

  48. Robust deployment pipeline is about confidence in your value delivery Boyan Mihaylov @boyanio https://boyan.io

Recommend


More recommend