Enable your Agile Team with Continuous Delivery Pipelines
|
|
- Gregory Thomas
- 5 years ago
- Views:
Transcription
1 Enable your Agile Team with Continuous Delivery Pipelines Esteban Garcia Chief Nebbia Technology Microsoft Regional Director
2 Chief Technologist at Nebbia Technology ALM MVP, Azure Insider, Regional Director Pluralsight Author Orlando.NET User Group Orlando DevOps ALMGuide.com /in/estebangarcia
3 Continuous Delivery Build Release Cloud Infrastructure as Code Instrumentation Feedback
4 Technology/Products that you will see today Visual Studio Team Services Backlog Build Release ARM Templates Azure.NET Core Angular Containers Cosmos DB
5 And you can do CI/CD with many others
6
7
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
9 Cannot measure value only based on number of features delivered
10 An unreleased feature loses value every day that it sits on the shelf
11 Continuous Delivery Continuous Integration Continuous Testing Constant Monitoring Pipeline Analytics
12
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
14 Budget Time Challenges Priority Skillset Organization Buy-in
15 Measure deploys per day instead of lead time
16 How long does it take you to go from code commit to successfully running in production?
17 Shift Left
18 Enable Feedback Loops Big loops developer -> feature -> release -> backlog Small loops CI (integration and test)
19 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 Feedback in action
20 Development practices are evolving
21 CI Verify code quality CD Automated deployment Where do we start? Instrumentation Understand usage Feedback Learn and evolve
22 DevOps lifecycle Development Operations
23 DevOps drivers Prioritization of investments is not based on real-world usage patterns Troubleshooting performance and availability is often difficult Development Operations Agile methodologies speed up the development cycle Operations cannot keep up with development and release fast enough
24 Plan It starts with an idea and a plan how to turn this idea into reality Project starts Manage work Develop + Test 1 Track progress Plan
25 Develop + Test Once the iteration starts, developers turn great ideas into features 2 Write Code Unit Testing Version Control Build Build Verification Release
26 Continuous Integration (CI) Issues cspkg Delivery delays Non-working/low-quality code Incomplete solutions Rework Value DEV Frequent integration Higher quality Repeatability
27 Continuous Integration Automate build and test Triggered on commit Collaborate through integration Understand code quality Rapid feedback
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 CI Tools VSTS Build Jenkins TeamCity Travis CI Go CD Bamboo CircleCI
30 CI Concepts Build agent Build trigger Repository access Test results Code coverage Build outputs
31 Demo - CI
32 Test Automation Because it s not just about compiling
33 Demo Test automation
34 Release When all tests pass, the build is deployed to testing environments for each stage in the release process Cloud Load Testing Integration testing environment Staging environmen t 3 Monitor + Learn Automated functional testing environment Pre-production environment
35 Continuous Delivery (CD) a DevOps practice Issues Slow delivery cadence Limited predictability when deploying Complexity when deploying Value DEV Consistency Accelerated deployment Repeatability Human error reduction
36 Release Management Build trigger Task execution Artifact store Orchestration Gates Environment definition Notifications
37 Source: Redgate
38 CD Tools VSTS Release ElectricFlow Octopus Deploy CA Release Automation IBM UrbanCode Serena Deployment
39 Demo - Release
40 Cloud Hyperscale Deploy anywhere Removes physical constraints Quickly create and tear down Easily support multiple environments
41 Infrastructure as Code Descriptive way to manage infrastructure Version controlled Key DevOps practice Enables production-like environments Repeatable
42 Infrastructure as Code options Ansible Puppet Chef Terraform ARM (Azure) Cloud Formation (AWS)
43 Demo - IaC
44 Monitor + Learn Learn and understand how users use your app, how it reacts and quickly fix issues and bugs Plan the next iteration Feedback Monitor 4
45 Demo - Instrumentation and Feedback
46 Practices that enable agility Source control everything Automate all things! Builds Test Infrastructure Deployments More
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 Thank you Esteban Garcia