SlideShare a Scribd company logo
1 of 25
Continuous
Delivery Pipelines
Tools and practices to use
Matteo Emili
matteo.emili@live.com || mattvsts.blogspot.com || @MattVSTS
What is DevOps?
Can I install it?
Agile Planning
Delivery plans
Dashboards
Kanban boards
Build and Test
Git source control
Continuous integration
Security scanning
Open source compliance
Cloud-based device testing
Plan +
Track
Monitor +
Learn
DevOps
Release
Develop +
Test Release
Continuous delivery
Functional testing
Release management
DevOps
Monitor and Learn
Application analytics
Logging & operations analytics
Mobile crash reporting
Foundations for DevOps
I want a system where my code is
automatically compiled, tested and
stored into an artifacts repository
The system is reliable and saves
quality time for the development
teams
It should not worry about how things
are done – once the process is up and
running, it just works
It is not a pipeline
Yet.
What do I need?
A few things 
Know your code
▪ Code quality analysis at build time makes sure you aren’t releasing potential
problems
▪ If your code quality is bad you are piling up on technical debt
▪ In the Build-Measure-Learn loop the Measure stage is the most important one
▪ Unless you keep up with it from the beginning it is going to clog up your project
▪ Only Metrics will tell if you are going in the right direction, so it is critical to ‘get
them right’
▪ Extend your product to include what really matters
▪ Reduce maintenance costs
▪ Proactively understand potential problems
Infrastructure as Code
▪ It’s not a cloud-only technology…
▪ PowerShell DSC
▪ Chef
▪ Puppet
▪ …
▪ …but it is easier in the cloud 
▪ Azure Resource Manager
▪ Amazon CloudFormations
▪ Takes the hassle of infrastructure provisioning out of the process
▪ You define the infrastructure once, and it is deployed in the same way all the time
“We have system administrators for this!”
▪ Everybody works together – sysadmins and developers, testers and architects…
▪ Automation means less errors due to manual interactions, and more quality time
to focus on business-relevant matters (optimisations, security, etc.)
▪ All the definitions are handled as source code
▪ Versioned
▪ Tested
▪ Documented
Building is not releasing…
▪ You should always keep build and release apart
▪ Starting a release process from a broken build is a waste of resources
▪ Release starts when all your artefacts are built and ready
▪ Infrastructure is provisioned and artefacts are deployed
▪ Here is where you have an approval flow
A look at prerequisites
Pipelines, Code Analysis and Infrastructure as Code
A shift to top gear: silent deployments
▪ I can release unfinished features as part of my iterative process
▪ This is not about the user, it is about the process
▪ Quality is more important than functionality
▪ Continuous Deployment to the limit!
▪ As soon as have something that ticks the Definition of Done, it goes straight to
production
Lots of pros, a few cons…
▪ More quality thanks to smaller, granular components or steps
▪ Deployments are liquid – it is proof that the pipeline you are using works well
▪ Handling data changes becomes so much easier!
▪ There is an overhead – knowing what is in-flight or incomplete
▪ One of the risks is technical debt increase – keeping track of what is going on is
critical, and that is the overhead with this approach
A real example – a TFS schema change
▪ Team Foundation Server the schema for a portion of its database between
version 2013 and 2015 to allow Team Project renane
▪ A large instance upgrade (size >1TB) required days of downtime
▪ From TFS 2013 Update 4 onwards a tool enabled an online (i.e. synchronised)
pre-migration for these tables, so that the upgrade proper could be done in a
weekend
▪ PRO: Less than 24hrs downtime for the upgrade
▪ CON: Ton of space required for the tool to run
Demo
Silent Deployments
So, naturally…
▪ It will become natural for teams to have non-aligned, rolling releases for
components
▪ Not a Lean exclusive – you can do that with Scrum or any other methodology as
well
▪ This liquid approach makes sure that the pipeline works as expected
What if I want even more granularity?
▪ Easy: implement Feature Flags/Toggles!
▪ Every feature lives behind a switch, which can be binary or progressive
▪ In the most advanced systems they are grouped together based on the user
target
▪ Beta tester
▪ Early adopter
▪ If something goes wrong you have a brilliant killswitch
How?
▪ Key-value storage, dedicated database, configuration files
▪ Easy with a few flags, harder with hundreds!
▪ It also needs to be integrated with a directory system to keep track of who-sees-
what
▪ It can be fragile – it doesn’t have to be shielded, but it is important to avoid leaks
Demo
A solution to this problem as a service: LaunchDarkly
The missing link - telemetry
▪ We might build the best stuff in the world, but if nobody uses this stuff it is just
wasted money
▪ Telemetry is critical for this: it builds metrics we can use to succeed
▪ Reactive telemetry is usually the starting point for most
▪ It tracks what happened in the past
▪ It would be great if we can get an idea of what will happen in the future…
Telemetry is not just for reacting to problems
▪ A proactive telemetry tool has Machine Learning behind the scenes, continuously
analyzing your logs and finding patterns in how your application behaves
▪ Application Insights Analytics is a great tool for this, and you can use it with any
other reactive telemetry solution
▪ E.g.: Logstash has a plugin for exporting directly to Analytics
▪ Using these tools you can prevent potential security issues (DDOS?) or
understand resource usage patterns and requirements
▪ Try it yourself: https://analytics.applicationinsights.io/demo
Demo
Proactive telemetry with Application Insights Analytics
Questions?
Thanks!

More Related Content

What's hot

Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by stepDaniel Fahlke
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyXebiaLabs
 
DevOps Workflows in the Windows Ecosystem - 21 April 2020
 DevOps Workflows in the Windows Ecosystem - 21 April 2020 DevOps Workflows in the Windows Ecosystem - 21 April 2020
DevOps Workflows in the Windows Ecosystem - 21 April 2020Puppet
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps worldBert Jan Schrijver
 
Dutch testing days - Trends in test automation
Dutch testing days - Trends in test automationDutch testing days - Trends in test automation
Dutch testing days - Trends in test automationTest Tool Factory
 
Ultimate Project Office with BrightWork and Nintex - Event on May 6
Ultimate Project Office with BrightWork and Nintex - Event on May 6Ultimate Project Office with BrightWork and Nintex - Event on May 6
Ultimate Project Office with BrightWork and Nintex - Event on May 6David J Rosenthal
 
Continuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsContinuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsDiane Cessna
 
JUG CH September 2021 - Debugging distributed systems
JUG CH September 2021 - Debugging distributed systemsJUG CH September 2021 - Debugging distributed systems
JUG CH September 2021 - Debugging distributed systemsBert Jan Schrijver
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsRainforest QA
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
There and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsThere and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsZbyszek Mockun
 
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsTDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsBert Jan Schrijver
 
Lean kanban India 16
Lean kanban India 16Lean kanban India 16
Lean kanban India 16Marcio Sete
 
Using Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamUsing Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamRainforest QA
 
Intro to devops - Begin with End in Mind
Intro to devops - Begin with End in MindIntro to devops - Begin with End in Mind
Intro to devops - Begin with End in MindLaavanya Kathiresen
 
Faster to Master without Disaster
Faster to Master without DisasterFaster to Master without Disaster
Faster to Master without DisasterPat Hermens
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps Ltd.
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database DeploymentsRed Gate Software
 

What's hot (20)

Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the Journey
 
DevOps Workflows in the Windows Ecosystem - 21 April 2020
 DevOps Workflows in the Windows Ecosystem - 21 April 2020 DevOps Workflows in the Windows Ecosystem - 21 April 2020
DevOps Workflows in the Windows Ecosystem - 21 April 2020
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
Dutch testing days - Trends in test automation
Dutch testing days - Trends in test automationDutch testing days - Trends in test automation
Dutch testing days - Trends in test automation
 
Ultimate Project Office with BrightWork and Nintex - Event on May 6
Ultimate Project Office with BrightWork and Nintex - Event on May 6Ultimate Project Office with BrightWork and Nintex - Event on May 6
Ultimate Project Office with BrightWork and Nintex - Event on May 6
 
Continuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsContinuous Deployment of Rails Applications
Continuous Deployment of Rails Applications
 
JUG CH September 2021 - Debugging distributed systems
JUG CH September 2021 - Debugging distributed systemsJUG CH September 2021 - Debugging distributed systems
JUG CH September 2021 - Debugging distributed systems
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
There and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsThere and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metrics
 
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsTDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
 
Lean kanban India 16
Lean kanban India 16Lean kanban India 16
Lean kanban India 16
 
Using Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamUsing Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development Team
 
Intro to devops - Begin with End in Mind
Intro to devops - Begin with End in MindIntro to devops - Begin with End in Mind
Intro to devops - Begin with End in Mind
 
Faster to Master without Disaster
Faster to Master without DisasterFaster to Master without Disaster
Faster to Master without Disaster
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014
 
DevOps for Database webinar
DevOps for Database webinarDevOps for Database webinar
DevOps for Database webinar
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
 

Similar to Tools and practices to use in a Continuous Delivery pipeline

Challenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryChallenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryDBmaestro - Database DevOps
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Salesforce Wellington User Group - devops for admins by David Smith
Salesforce Wellington User Group - devops for admins by David SmithSalesforce Wellington User Group - devops for admins by David Smith
Salesforce Wellington User Group - devops for admins by David SmithAnna Loughnan Colquhoun
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
 
Itsummit2015 blizzard
Itsummit2015 blizzardItsummit2015 blizzard
Itsummit2015 blizzardkevin_donovan
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...Dynatrace
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauroMatt Tesauro
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldDevOps Enterprise Summit
 
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...Stacey Whitney
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestMatt Tesauro
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)XebiaLabs
 
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBWebinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBMongoDB
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?Rob Brown
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineMatt Tesauro
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryXebiaLabs
 

Similar to Tools and practices to use in a Continuous Delivery pipeline (20)

Challenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryChallenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous Delivery
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Salesforce Wellington User Group - devops for admins by David Smith
Salesforce Wellington User Group - devops for admins by David SmithSalesforce Wellington User Group - devops for admins by David Smith
Salesforce Wellington User Group - devops for admins by David Smith
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
The Unlikely Couple, DevOps and Security. Can it work?
The Unlikely Couple, DevOps and Security. Can it work?The Unlikely Couple, DevOps and Security. Can it work?
The Unlikely Couple, DevOps and Security. Can it work?
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Itsummit2015 blizzard
Itsummit2015 blizzardItsummit2015 blizzard
Itsummit2015 blizzard
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...
Mage Titans USA 2016 - Mathew Beane - Edit Fully Stacked: Less OOPS, More OPS...
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)
 
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBWebinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec Pipeline
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
 

More from Matteo Emili

Transforming the impossible
Transforming the impossibleTransforming the impossible
Transforming the impossibleMatteo Emili
 
É ora di passare a Pipeline as code
É ora di passare a Pipeline as codeÉ ora di passare a Pipeline as code
É ora di passare a Pipeline as codeMatteo Emili
 
How not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapHow not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapMatteo Emili
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!Matteo Emili
 
The computer says no v2
The computer says no v2The computer says no v2
The computer says no v2Matteo Emili
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconMatteo Emili
 
The computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldThe computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldMatteo Emili
 
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesStrategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesMatteo Emili
 
What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?Matteo Emili
 
Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Matteo Emili
 
PowerShell and Azure DevOps
PowerShell and Azure DevOpsPowerShell and Azure DevOps
PowerShell and Azure DevOpsMatteo Emili
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2Matteo Emili
 
Am i doing deployments right?
Am i doing deployments right?Am i doing deployments right?
Am i doing deployments right?Matteo Emili
 
How telemetry can be your best friend
How telemetry can be your best friendHow telemetry can be your best friend
How telemetry can be your best friendMatteo Emili
 
Containers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveContainers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveMatteo Emili
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementMatteo Emili
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsMatteo Emili
 
Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Matteo Emili
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSMatteo Emili
 
Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Matteo Emili
 

More from Matteo Emili (20)

Transforming the impossible
Transforming the impossibleTransforming the impossible
Transforming the impossible
 
É ora di passare a Pipeline as code
É ora di passare a Pipeline as codeÉ ora di passare a Pipeline as code
É ora di passare a Pipeline as code
 
How not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapHow not to fall into the DevSecOps trap
How not to fall into the DevSecOps trap
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!
 
The computer says no v2
The computer says no v2The computer says no v2
The computer says no v2
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the bacon
 
The computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldThe computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps world
 
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesStrategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
 
What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?
 
Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?
 
PowerShell and Azure DevOps
PowerShell and Azure DevOpsPowerShell and Azure DevOps
PowerShell and Azure DevOps
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2
 
Am i doing deployments right?
Am i doing deployments right?Am i doing deployments right?
Am i doing deployments right?
 
How telemetry can be your best friend
How telemetry can be your best friendHow telemetry can be your best friend
How telemetry can be your best friend
 
Containers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveContainers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspective
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle management
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTS
 
Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?
 

Recently uploaded

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Recently uploaded (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

Tools and practices to use in a Continuous Delivery pipeline

  • 2. Matteo Emili matteo.emili@live.com || mattvsts.blogspot.com || @MattVSTS
  • 3. What is DevOps? Can I install it?
  • 4. Agile Planning Delivery plans Dashboards Kanban boards Build and Test Git source control Continuous integration Security scanning Open source compliance Cloud-based device testing Plan + Track Monitor + Learn DevOps Release Develop + Test Release Continuous delivery Functional testing Release management DevOps Monitor and Learn Application analytics Logging & operations analytics Mobile crash reporting
  • 5. Foundations for DevOps I want a system where my code is automatically compiled, tested and stored into an artifacts repository The system is reliable and saves quality time for the development teams It should not worry about how things are done – once the process is up and running, it just works
  • 6. It is not a pipeline Yet.
  • 7. What do I need? A few things 
  • 8. Know your code ▪ Code quality analysis at build time makes sure you aren’t releasing potential problems ▪ If your code quality is bad you are piling up on technical debt ▪ In the Build-Measure-Learn loop the Measure stage is the most important one ▪ Unless you keep up with it from the beginning it is going to clog up your project ▪ Only Metrics will tell if you are going in the right direction, so it is critical to ‘get them right’ ▪ Extend your product to include what really matters ▪ Reduce maintenance costs ▪ Proactively understand potential problems
  • 9. Infrastructure as Code ▪ It’s not a cloud-only technology… ▪ PowerShell DSC ▪ Chef ▪ Puppet ▪ … ▪ …but it is easier in the cloud  ▪ Azure Resource Manager ▪ Amazon CloudFormations ▪ Takes the hassle of infrastructure provisioning out of the process ▪ You define the infrastructure once, and it is deployed in the same way all the time
  • 10. “We have system administrators for this!” ▪ Everybody works together – sysadmins and developers, testers and architects… ▪ Automation means less errors due to manual interactions, and more quality time to focus on business-relevant matters (optimisations, security, etc.) ▪ All the definitions are handled as source code ▪ Versioned ▪ Tested ▪ Documented
  • 11. Building is not releasing… ▪ You should always keep build and release apart ▪ Starting a release process from a broken build is a waste of resources ▪ Release starts when all your artefacts are built and ready ▪ Infrastructure is provisioned and artefacts are deployed ▪ Here is where you have an approval flow
  • 12. A look at prerequisites Pipelines, Code Analysis and Infrastructure as Code
  • 13. A shift to top gear: silent deployments ▪ I can release unfinished features as part of my iterative process ▪ This is not about the user, it is about the process ▪ Quality is more important than functionality ▪ Continuous Deployment to the limit! ▪ As soon as have something that ticks the Definition of Done, it goes straight to production
  • 14. Lots of pros, a few cons… ▪ More quality thanks to smaller, granular components or steps ▪ Deployments are liquid – it is proof that the pipeline you are using works well ▪ Handling data changes becomes so much easier! ▪ There is an overhead – knowing what is in-flight or incomplete ▪ One of the risks is technical debt increase – keeping track of what is going on is critical, and that is the overhead with this approach
  • 15. A real example – a TFS schema change ▪ Team Foundation Server the schema for a portion of its database between version 2013 and 2015 to allow Team Project renane ▪ A large instance upgrade (size >1TB) required days of downtime ▪ From TFS 2013 Update 4 onwards a tool enabled an online (i.e. synchronised) pre-migration for these tables, so that the upgrade proper could be done in a weekend ▪ PRO: Less than 24hrs downtime for the upgrade ▪ CON: Ton of space required for the tool to run
  • 17. So, naturally… ▪ It will become natural for teams to have non-aligned, rolling releases for components ▪ Not a Lean exclusive – you can do that with Scrum or any other methodology as well ▪ This liquid approach makes sure that the pipeline works as expected
  • 18. What if I want even more granularity? ▪ Easy: implement Feature Flags/Toggles! ▪ Every feature lives behind a switch, which can be binary or progressive ▪ In the most advanced systems they are grouped together based on the user target ▪ Beta tester ▪ Early adopter ▪ If something goes wrong you have a brilliant killswitch
  • 19. How? ▪ Key-value storage, dedicated database, configuration files ▪ Easy with a few flags, harder with hundreds! ▪ It also needs to be integrated with a directory system to keep track of who-sees- what ▪ It can be fragile – it doesn’t have to be shielded, but it is important to avoid leaks
  • 20. Demo A solution to this problem as a service: LaunchDarkly
  • 21. The missing link - telemetry ▪ We might build the best stuff in the world, but if nobody uses this stuff it is just wasted money ▪ Telemetry is critical for this: it builds metrics we can use to succeed ▪ Reactive telemetry is usually the starting point for most ▪ It tracks what happened in the past ▪ It would be great if we can get an idea of what will happen in the future…
  • 22. Telemetry is not just for reacting to problems ▪ A proactive telemetry tool has Machine Learning behind the scenes, continuously analyzing your logs and finding patterns in how your application behaves ▪ Application Insights Analytics is a great tool for this, and you can use it with any other reactive telemetry solution ▪ E.g.: Logstash has a plugin for exporting directly to Analytics ▪ Using these tools you can prevent potential security issues (DDOS?) or understand resource usage patterns and requirements ▪ Try it yourself: https://analytics.applicationinsights.io/demo
  • 23. Demo Proactive telemetry with Application Insights Analytics