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.

deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines

118 views

Published on

Continuous Delivery session from deliver:Agile
As your Agile team looks to shorten the cycle time from idea to production, it is important to give them the tools that will enable continuous feedback, collaboration with stakeholders, and most importantly, a way to get the product in front of the customer and enable a feedback loop.

This session will teach you how to create an effective release pipeline that incorporates Continuous Integration, automated testing, cloud deployment with Infrastructure as Code, Instrumentation, load testing, and more.

We will go from zero to Production in less than an hour and you will go back to work on Monday ready to deploy!

Learning Outcomes:
Continuous Integration
Continuous Deployment
Automation

Published in: Technology
  • Be the first to comment

  • Be the first to like this

deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines

  1. 1. Enable your Agile Team with Continuous Delivery Pipelines Esteban Garcia Chief Technologist @ Nebbia Technology Microsoft Regional Director @EstebanFGarcia
  2. 2. Chief Technologist at Nebbia Technology ALM MVP, Azure Insider, Regional Director Pluralsight Author Orlando .NET User Group | Orlando DevOps ALMGuide.com esteban@nebbiatech.com @EstebanFGarcia /in/estebangarcia @EstebanFGarcia
  3. 3. Continuous Delivery • Build • Release • Cloud • Infrastructure as Code • Instrumentation • Feedback @EstebanFGarcia
  4. 4. Technology/Products that you will see today Visual Studio Team Services • Backlog • Build • Release ARM Templates Azure .NET Core Angular Containers Cosmos DB @EstebanFGarcia
  5. 5. And you can do CI/CD with many others
  6. 6. @EstebanFGarcia
  7. 7. @EstebanFGarcia
  8. 8. Potentially Shippable Product • PBIs delivered each sprint • Focuses on velocity • We forget that our product has to ACTUALLY ship • Produces working code, but not necessarily operational code • Leads to feature factories @EstebanFGarcia
  9. 9. Cannot measure value only based on number of features delivered @EstebanFGarcia
  10. 10. An unreleased feature loses value every day that it sits on the shelf @EstebanFGarcia
  11. 11. Continuous Delivery • Continuous Integration • Continuous Testing • Constant Monitoring • Pipeline Analytics @EstebanFGarcia
  12. 12. @EstebanFGarcia
  13. 13. Why Continuous Delivery? • Time to market - Reduce the cycle-time between an idea and production • Enable feedback loops • Increased quality • Reduce risk related to long release cycles • Sustainability @EstebanFGarcia
  14. 14. Challenges Budget Time Priority Skillset Organization Buy-in
  15. 15. Measure deploys per day instead of lead time @EstebanFGarcia
  16. 16. How long does it take you to go from code commit to successfully running in production? @EstebanFGarcia
  17. 17. Shift Left
  18. 18. Enable Feedback Loops • Big loops developer -> feature -> release -> backlog • Small loops CI (integration and test) @EstebanFGarcia
  19. 19. Feedback in action • Peer review vs external change approval • Proactive monitoring • Collaboration between Dev and Ops • Customers access a production system • Customers get a say on your backlog @EstebanFGarcia
  20. 20. Development practices are evolving @EstebanFGarcia
  21. 21. Where do we start? CI – Verify code quality CD – Automated deployment Instrumentation – Understand usage Feedback – Learn and evolve @EstebanFGarcia
  22. 22. DevOps lifecycle Development Operations @EstebanFGarcia
  23. 23. DevOps drivers • Troubleshooting performance and availability is often difficult • Operations cannot keep up with development and release fast enough • Agile methodologies speed up the development cycle • Prioritization of investments is not based on real-world usage patterns Development Operations @EstebanFGarcia
  24. 24. It starts with an idea – and a plan how to turn this idea into reality … Manage work Develop + Test 1 Plan Project starts PlanTrack progress @EstebanFGarcia
  25. 25. Write Code Unit Testing 2 Build Version Control Build Verification Release Once the iteration starts, developers turn great ideas into features … Develop + Test @EstebanFGarcia
  26. 26. Continuous Integration (CI) Issues • Delivery delays • Non-working/low-quality code • Incomplete solutions • Rework Value • Frequent integration • Higher quality • Repeatability cspkg DEV @EstebanFGarcia
  27. 27. Automate build and test Triggered on commit Collaborate through integration Understand code quality Rapid feedback Continuous Integration @EstebanFGarcia
  28. 28. What’s involved? Single Source Repository Automate the build Self-testing Commit often (at least daily) Build upon commit Keep it fast Build output should be accessible Build results should be visible
  29. 29. CI Tools VSTS Build Jenkins TeamCity Travis CI Go CD Bamboo CircleCI @EstebanFGarcia
  30. 30. Build agent Build trigger Repository access Test results Code coverage Build outputs CI Concepts @EstebanFGarcia
  31. 31. Demo - CI
  32. 32. Test Automation Because it’s not just about compiling
  33. 33. Demo – Test automation
  34. 34. Cloud Load Testing Integration testing environment Automated functional testing environment 3 Pre-production environment Staging environmen t Monitor + Learn When all tests pass, the build is deployed to testing environments for each stage in the release process Release @EstebanFGarcia
  35. 35. Continuous Delivery (CD) – a DevOps practice Issues • Slow delivery cadence • Limited predictability when deploying • Complexity when deploying Value • Consistency • Accelerated deployment • Repeatability • Human error reductionDEV @EstebanFGarcia
  36. 36. Build trigger Task execution Artifact store Orchestration Gates Environment definition Notifications Release Management @EstebanFGarcia
  37. 37. @EstebanFGarcia Source: Redgate
  38. 38. CD Tools VSTS Release ElectricFlow Octopus Deploy CA Release Automation IBM UrbanCode Serena Deployment @EstebanFGarcia
  39. 39. Demo - Release
  40. 40. Hyperscale Deploy anywhere Removes physical constraints Quickly create and tear down Easily support multiple environments Cloud @EstebanFGarcia
  41. 41. Descriptive way to manage infrastructure Version controlled Key DevOps practice Enables production-like environments Repeatable Infrastructure as Code @EstebanFGarcia
  42. 42. @EstebanFGarcia Ansible Puppet Chef Terraform ARM (Azure) Cloud Formation (AWS) Infrastructure as Code options
  43. 43. Demo - IaC
  44. 44. Learn and understand how users use your app, how it reacts and quickly fix issues and bugs Monitor + Learn 4 Monitor Feedback Plan the next iteration @EstebanFGarcia
  45. 45. Demo - Instrumentation and Feedback
  46. 46. Practices that enable agility • Source control everything • Automate all things! • Builds • Test • Infrastructure • Deployments • More @EstebanFGarcia
  47. 47. New Normal • Deploy as soon as a feature is done • Practice deployments early and often – production is no longer an event • Inject quality throughout the process • Engage operations early – work together
  48. 48. Thank you Esteban Garcia @EstebanFGarcia esteban@nebbiatech.com

×