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
[2024]Digital Global Overview Report 2024 Meltwater.pdf
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
1. Enable your Agile
Team with
Continuous
Delivery Pipelines
Esteban Garcia
Chief Technologist @ Nebbia Technology
Microsoft Regional Director
@EstebanFGarcia
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
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
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
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
18. Enable Feedback
Loops
• Big loops
developer -> feature ->
release -> backlog
• Small loops
CI (integration and test)
@EstebanFGarcia
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
21. Where do we
start?
CI – Verify code quality
CD – Automated deployment
Instrumentation –
Understand usage
Feedback – Learn and evolve
@EstebanFGarcia
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. 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. Write Code
Unit Testing
2
Build
Version Control
Build Verification
Release
Once the iteration starts, developers
turn great ideas into features …
Develop + Test
@EstebanFGarcia
27. Automate build and test
Triggered on commit
Collaborate through integration
Understand code quality
Rapid feedback
Continuous
Integration
@EstebanFGarcia
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
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. 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
41. Descriptive way to manage
infrastructure
Version controlled
Key DevOps practice
Enables production-like
environments
Repeatable
Infrastructure as
Code
@EstebanFGarcia
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
46. Practices that
enable agility
• Source control everything
• Automate all things!
• Builds
• Test
• Infrastructure
• Deployments
• More
@EstebanFGarcia
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