SlideShare a Scribd company logo
Designing a
Release Pipeline
Jose Luis Soria
jlsoriat@gmail.com - @jlsoriat
What is a Release Pipeline?
• Automated manifestation of
your delivery process.
• Feedback mechanism.
• Detection of unfit release
candidates.
• Pull system.
• Useful for CD or any other
delivery model.
Pipeline design considerations
• Emergent design. No BDUF.
• Start early.
• Start simple and evolve with the system.
• Begin with the most valuable assets.
• Address the bottlenecks.
#1 Define Components
What is a Component?
• A set of artifacts (binaries, dynamic code,
configuration files, other supporting files) that can
be deployed and verified together without affecting
other areas of the application.
Tips for choosing components
• Deploy and test the smallest independent entity.
• Rely on the architecture:
• Logical / physical.
• Layers / tenants.
• See the whole.
What do we need to know?
For each component:
• Meaningful name.
• Description.
• Priority / order (when to address it?)
• Source (most likely, version control.)
• Target (where it gets deployed.)
• Pre-requisites.
• Dependencies.
• Configuration tokens.
Configuration tokens
• Make a list of environment-dependent information.
• Tokenize it in the configuration.
• Gather the values for all the environments.
Component sheet
Activity: defining
components
„Our application consists on:
A web site built on top this technology stack:
• MVC framework.
• Client-side logic (HTML5, JavaScript.)
• Entity model mapped to the DB using a ORM.
• Data model residing in a DB.‰
Activity: defining
components
„Our application consists on:
A web site built on top this technology stack:
• MVC framework.
• Client-side logic (HTML5, JavaScript.)
• Entity model mapped to the DB using a ORM.
• Data model residing in a DB.
Key business logic resides on a web services layer.
We also maintain a mobile client for two platforms.‰
Activity: defining
components
„Our application consists on:
A web site built on top this technology stack:
• MVC framework.
• Client-side logic (HTML5, JavaScript.)
• Entity model mapped to the DB using a ORM.
• Data model residing in a DB.
Key business logic resides on a web services layer.
We also maintain a mobile client for two platforms.
For some operations we make calls to third-party web
services.‰
Example: component sheet
Implementation notes
• It should be possible to independently build, deploy
and test anything defined as a component.
• You should decide how dependencies will be made
available:
• Source Control.
• Artifact repositories (NuGet, Maven⁄)
• Deployed artifacts.
• Etc.
#2 Identify
sub-pipelines
Single pipeline
• A single pipeline servicing all the components and
teams.
• May be able to detect which component has
changed and operate only on that one.
One pipeline per component
• Each component has its own pipeline.
• Different pipelines may have different designs.
• Individual pipelines may fan-in to a system pipeline.
• More flexible but more complex.
One pipeline per team
• Each team has its own pipeline.
• Different pipelines may have different designs.
• Individual pipelines may fan-in to an integration
pipeline.
Mixed approach
• Different teams building different components.
• Keep it simple!
Implementation notes
• It is better to use a tool that allows to define sub-
pipelines, fan-in, fan-out, etc.
#3 Define Stages &
Orchestration
What is a Stage?
• A set of steps or activities that are performed on a
release candidate.
• I lets any release candidate advance towards
production, or discards it.
• When a release candidate passes through a stage,
our confidence on it is increased.
• It is a source for feedback.
What is Orchestration?
• It is the way we arrange the stages so release
candidates flow through them, in their way to
production.
Tips for stages & orchestration
• Feedback is the key. Arrange stages and
orchestration based on the feedback we need.
• Stages are filters.The orchestration should be
arranged to stop the pipeline if a stage fails.
• Stages can contain both manual and automated
steps.
• Stages can be manually or automatically triggered
(approvals.)
• Automate as much as possible. Including approvals.
More tips for stages &
orchestration
• Grow your pipeline wide, not long
http://bit.ly/1jsNGP5.
• Build only once.
• Use environment-agnostic binaries.
• Version everything.
What do we need to know?
For each stage:
• Meaningful name.
• Clear goal.
• Does it need a manual approval to be triggered?
• Does it need a manual verification when it has
finished?
• Sources.
• Flow (orchestration.)
Pipeline-level orchestration
(examples)
Commit Acceptance testing Manualtesting Release
Minimum pipeline
Commit Acceptance testing Release
Exploratory testing
Capacity testing Security testing
User Acceptance
testing
Complex pipeline
Fully automated
Partially automated, or manual
Legend:
Stage-level
orchestration
(example)
About sources
• Version control.
• Artifact repositories.
• Environment libraries.
Which stages do I need?
• Think about the kind of feedback you need.
• Think about what should stop a release candidate
to get to production.
• Create aValue Stream Map.
Value Stream Map (example)
Assessment Approval Planning
UAT
Release
Acceptance
tests
CodeSpecification
2 days 1 day
Value-
added
time
Wait
time
Development: cycle time ~ ?
3 days 3 days ? ?
?
?
4 days 1 day 2 days 2 weeks ? ?
Delivery: lead time ~ ?
Prevalent stages: the Commit
stage
• Eliminate early release candidates that are unfit for
production.
• Close to (or the same as) a CI build.
• Quick validations: build, unit testing, static analysis,
etc.
• Packaging.
• For Continuous Delivery, it runs on each commit
(no branches – feature toggles.)
• For other models, decide when it gets triggered
(for example, on each merge to trunk.)
Prevalent stages: the Commit
stage
http://bit.ly/1jsSkwA
Prevalent stages: the Automated
Acceptance Test stage
http://bit.ly/1jsSkwA
Prevalent stages: the Manual
Test stage
http://bit.ly/1jsSkwA
Prevalent stages:
non-Functional Testing stages
http://bit.ly/1jsSkwA
Activity: defining
stages & orchestration
„We have a basic suite of automated acceptance
tests that we plan to grow along with the system.‰
„The team does (manual) functional testing.‰
Activity: defining
stages & orchestration
„We have a basic suite of automated acceptance
tests that we plan to grow along with the system.‰
„The team does (manual) functional testing.‰
„We need to support 2,000 concurrent users.‰
Implementation notes
• Choose a tool that allows to easily model and
visualize the flow.
• Choose a tool that supports what you need for
orchestration:
• Approvals.
• Validations.
• Parallelization.
• Alerts.
• Etc.
#4 Define
environments
What is an Environment?
• A set servers, devices or any other resources we
need in order to run and validate a release
candidate in its way to production.
Tips for defining environments
• Prepare for deployment automation.
• Lock down environments. Restrict access.
• Different stages could target the same environment
if needed.
• Prepare for auto-provision.
• Make environments disposable. DonÊt turn them
into bottlenecks.
• Environments may not be tied to stages. It should
be easy to point any stage to any environment.
Activity: defining
environments
„We have a basic suite of automated acceptance
tests that we plan to grow along with the system.‰
„The team does (manual) functional testing.‰
„We need to support 2,000 concurrent users.‰
Implementation notes
• Use virtualization.
• Use cloud-based environments.
• Use tools for managing templates, configuration,
auto-provision, etc.
#5 Define Steps
What is a Step?
• Any activity that is done in the context of a stage,
that allows us to get feedback and prove the fitness
of the release candidate.
• Examples:
• Deploy a component.
• Run automated tests.
• Run manual tests.
• Update metrics.
• Alert the user of some event.
• Etc.
Tips for defining steps
• Consider:
• The goal of the stage.
• The kind of feedback you need.
• Sources.
• Targets (environments.)
• Build and package only in the Commit stage.
• Most times, deployment is present, but not always.
• (Automated) Smoke Testing should follow any
deployment.
• Think about both automated and manual steps.
Activity: defining steps
„We want to filter out anything producing static
analysis warnings.‰
„We want to try exploratory testing.‰
„We may use the same environment for load testing
and security testing‰
#6 Define automation
& tooling
Tips for step automation
• Automate everything.
• Automate everywhere (for all the environments.)
• Preference for automation:
• Fully automated steps.
• Manually triggered automatic steps.
• Manual steps.
• Build only once.
• Version everything.
• Have environment lockdown in mind.
Deployment automation
considerations
• Deploy the same way to every environment.The
target environment should be a (implicit)
parameter for the automations.
• Set up (tool-agnostic) one-click deployments.
• Treat configuration tokens as parameters for the
automations.
• Prepare for rollbacks.
Database deployment
considerations
• Database deployment is not the same as database
development.
• Decide about the deployment strategy:
• Schema & Data compare.
• Delta scripts (better for Continuous Delivery.)
• ORM tools (schema update, migrations, etc.)
Test automation considerations
• Q2 tests are not necessarily run through the UI.
• Smoke tests may be run through the UI.
• Frequently, non-functional testing can be
automated.
• Leave environments and data in a known state.
• A few things canÊt be automated (UAT & Q3
testing.)
What do we need to know
For each step to be automated:
• Automation tool or technology.
• Execution model.
• Parameters (at least youÊll have the configuration
tokens.)
• Source / target.
About execution models
• Native OS tool.
• Agent.
• Remote execution.
Activity: defining
automation & tooling
„Production environment is in an isolated network‰
„Our operations people wonÊt allow us to install
anything there‰
#7 Define execution
model, monitoring and
metrics
Continuous Delivery flow model
• Pipeline instances are created on each commit.Any
commit is a release candidate.
• One-piece continuous flow model.
• There is no way back.Any error makes the release
candidate to be discarded.
• Fixes are treated as new release candidates.They
are run through the entire pipeline from the
beginning.
Other flow models
• Pipeline instances are created as needed.A release
candidate might comprise several commits.
• Decide on the batch size. Larger batches are
cheaper but limit feedback.
• Errors might be fixed in the context of the stage
where they arise.
Monitoring the pipeline
• Transparency.
• Rely on a proper tool.
• Set up alerts for key events.
• Use a Cumulative Flow Diagram (CFD.)
• Gather metrics and act on them.
Primary metrics (direct
evidence)
• Cycle time.
• Mean Time Between Failures (MTBF.)
• Mean Time To Recover (MTTR.)
Secondary metrics
(circumstantial evidence)
• Test coverage.
• Duplication of code.
• Coupling.
• Compilation warnings.
• Code churn.
• Build frequency
• Etc.
#8 Plan for future
enhancements
Examples – DevOps culture
• Improve branching model if needed.
• Debugging optimization, symbol servers.
• Canary releases.
• Blue/green deployments.
• A/BTesting.
• Preventive profiling.
• Telemetry, analytics,Application Performance
Monitoring (APM.)
• Proactive resiliency enablement (Simian army
http://nflx.it/SPeTGj)
Example: Advanced pipeline
#9 Inspect & adapt
Continuously improve the
pipeline
• Component or architectural changes.
• New skills in the team.
• New resources, tools, environments.
• Reserve time, and make the team accountable for
improvement.
Summary
1. Define components.
2. Identify sub-pipelines.
3. Define Stages & Orchestration.
4. Define Environments.
5. Define Steps.
6. Define Automation & Tooling.
7. Define execution model, monitoring and metrics.
8. Plan for future enhancements.
9. Inspect & adapt.
Thanks!
Jose Luis Soria
Continuous Improvement Manager at Ria Financial
jlsoriat@gmail.com - @jlsoriat
http://geeks.ms/blogs/jlsoria
Slides: http://www.slideshare.net/jlsoria
http://aka.ms/releasepipeline
Get a book! #xp2014 @jlsoriat

More Related Content

What's hot

[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
Baruch Sadogursky
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
Pascal Larocque
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
Eklove Mohan
 
The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
C4Media
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure Update
Linaro
 
Implementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise MiddlewareImplementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise Middleware
XebiaLabs
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
jbugkorea
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Apache Maven
Apache MavenApache Maven
Apache Maven
eurosigdoc acm
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
Kimihiko Kitase
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Getting value from IoT, Integration and Data Analytics
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
Eric Gandt
 
LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015
Jeffrey Habets
 
Alina Cojocariu - Flex and Android tests with Ranorex
Alina Cojocariu - Flex and Android tests with RanorexAlina Cojocariu - Flex and Android tests with Ranorex
Alina Cojocariu - Flex and Android tests with Ranorex
Codecamp Romania
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
Michaela Murray
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO
Jose Luis Soria
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEX
Sergei Martens
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
All Things Open
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gates
Strannik_2013
 

What's hot (20)

[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure Update
 
Implementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise MiddlewareImplementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise Middleware
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
 
LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015
 
Alina Cojocariu - Flex and Android tests with Ranorex
Alina Cojocariu - Flex and Android tests with RanorexAlina Cojocariu - Flex and Android tests with Ranorex
Alina Cojocariu - Flex and Android tests with Ranorex
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEX
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gates
 

Viewers also liked

#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure
Vincent Biret
 
Dev ops cd tool chains
Dev ops cd tool chainsDev ops cd tool chains
Dev ops cd tool chains
Igor Moochnick
 
The power of symmetry
The power of symmetryThe power of symmetry
The power of symmetry
Felienne Hermans
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr
 
Release Management
Release Management Release Management
Release Management
Vyom Labs
 
DevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerDevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for Docker
Sonatype
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Jez Humble
 
Release Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a PlanRelease Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a Plan
connielharper
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Sonatype
 

Viewers also liked (10)

#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure
 
Dev ops cd tool chains
Dev ops cd tool chainsDev ops cd tool chains
Dev ops cd tool chains
 
The power of symmetry
The power of symmetryThe power of symmetry
The power of symmetry
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Release Management
Release Management Release Management
Release Management
 
DevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerDevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for Docker
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Release Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a PlanRelease Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a Plan
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Similar to Jose Luis Soria - XP2014 - Designing a Release Pipeline

Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
Amulya Sharma
 
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationTraining Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Continuent
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy Way
Jordi Pradel
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
Len Bass
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
Synerzip
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008
Pete Schneider
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
Gert Drapers
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
Ash Winter
 
Bsides Knoxville - APT2
Bsides Knoxville - APT2Bsides Knoxville - APT2
Bsides Knoxville - APT2
Adam Compton
 
Super chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeploymentsSuper chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeployments
Nikola Gotsev
 
Supercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration DeploymentsSupercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration Deployments
Nikola Gotsev
 
Introduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya SharmaIntroduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya Sharma
Amulya Sharma
 
Grant Fritchey Justin Caldicott - Best practices for database deployments
Grant Fritchey Justin Caldicott - Best practices for database deploymentsGrant Fritchey Justin Caldicott - Best practices for database deployments
Grant Fritchey Justin Caldicott - Best practices for database deployments
Red Gate Software
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Amazon Web Services
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
Softmart
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
Lilia Sfaxi
 
Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City
Red Gate Software
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 

Similar to Jose Luis Soria - XP2014 - Designing a Release Pipeline (20)

Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationTraining Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy Way
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
 
Bsides Knoxville - APT2
Bsides Knoxville - APT2Bsides Knoxville - APT2
Bsides Knoxville - APT2
 
Super chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeploymentsSuper chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeployments
 
Supercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration DeploymentsSupercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration Deployments
 
Introduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya SharmaIntroduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya Sharma
 
Grant Fritchey Justin Caldicott - Best practices for database deployments
Grant Fritchey Justin Caldicott - Best practices for database deploymentsGrant Fritchey Justin Caldicott - Best practices for database deployments
Grant Fritchey Justin Caldicott - Best practices for database deployments
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 

More from Jose Luis Soria

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international company
Jose Luis Soria
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Jose Luis Soria
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Jose Luis Soria
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITT
Jose Luis Soria
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
Jose Luis Soria
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
Jose Luis Soria
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
Jose Luis Soria
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Jose Luis Soria
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Jose Luis Soria
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
Jose Luis Soria
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Jose Luis Soria
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8
Jose Luis Soria
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
Jose Luis Soria
 
Agile Database Development - SDC2012
Agile Database Development - SDC2012Agile Database Development - SDC2012
Agile Database Development - SDC2012
Jose Luis Soria
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para Azure
Jose Luis Soria
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
Jose Luis Soria
 
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
Jose Luis Soria
 

More from Jose Luis Soria (20)

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international company
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITT
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for delivery
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
 
Agile Database Development - SDC2012
Agile Database Development - SDC2012Agile Database Development - SDC2012
Agile Database Development - SDC2012
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para Azure
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
 

Recently uploaded

RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
ssuser1915fe1
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
Anant Gupta
 
How to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdfHow to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdf
ChristopherTHyatt
 
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSECHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
kumarjarun2010
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
aakash malhotra
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 

Recently uploaded (20)

RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
 
How to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdfHow to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdf
 
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSECHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 

Jose Luis Soria - XP2014 - Designing a Release Pipeline

  • 1. Designing a Release Pipeline Jose Luis Soria jlsoriat@gmail.com - @jlsoriat
  • 2. What is a Release Pipeline? • Automated manifestation of your delivery process. • Feedback mechanism. • Detection of unfit release candidates. • Pull system. • Useful for CD or any other delivery model.
  • 3. Pipeline design considerations • Emergent design. No BDUF. • Start early. • Start simple and evolve with the system. • Begin with the most valuable assets. • Address the bottlenecks.
  • 5. What is a Component? • A set of artifacts (binaries, dynamic code, configuration files, other supporting files) that can be deployed and verified together without affecting other areas of the application.
  • 6. Tips for choosing components • Deploy and test the smallest independent entity. • Rely on the architecture: • Logical / physical. • Layers / tenants. • See the whole.
  • 7. What do we need to know? For each component: • Meaningful name. • Description. • Priority / order (when to address it?) • Source (most likely, version control.) • Target (where it gets deployed.) • Pre-requisites. • Dependencies. • Configuration tokens.
  • 8. Configuration tokens • Make a list of environment-dependent information. • Tokenize it in the configuration. • Gather the values for all the environments.
  • 10. Activity: defining components „Our application consists on: A web site built on top this technology stack: • MVC framework. • Client-side logic (HTML5, JavaScript.) • Entity model mapped to the DB using a ORM. • Data model residing in a DB.‰
  • 11. Activity: defining components „Our application consists on: A web site built on top this technology stack: • MVC framework. • Client-side logic (HTML5, JavaScript.) • Entity model mapped to the DB using a ORM. • Data model residing in a DB. Key business logic resides on a web services layer. We also maintain a mobile client for two platforms.‰
  • 12. Activity: defining components „Our application consists on: A web site built on top this technology stack: • MVC framework. • Client-side logic (HTML5, JavaScript.) • Entity model mapped to the DB using a ORM. • Data model residing in a DB. Key business logic resides on a web services layer. We also maintain a mobile client for two platforms. For some operations we make calls to third-party web services.‰
  • 14. Implementation notes • It should be possible to independently build, deploy and test anything defined as a component. • You should decide how dependencies will be made available: • Source Control. • Artifact repositories (NuGet, Maven⁄) • Deployed artifacts. • Etc.
  • 16. Single pipeline • A single pipeline servicing all the components and teams. • May be able to detect which component has changed and operate only on that one.
  • 17. One pipeline per component • Each component has its own pipeline. • Different pipelines may have different designs. • Individual pipelines may fan-in to a system pipeline. • More flexible but more complex.
  • 18. One pipeline per team • Each team has its own pipeline. • Different pipelines may have different designs. • Individual pipelines may fan-in to an integration pipeline.
  • 19. Mixed approach • Different teams building different components. • Keep it simple!
  • 20. Implementation notes • It is better to use a tool that allows to define sub- pipelines, fan-in, fan-out, etc.
  • 21. #3 Define Stages & Orchestration
  • 22. What is a Stage? • A set of steps or activities that are performed on a release candidate. • I lets any release candidate advance towards production, or discards it. • When a release candidate passes through a stage, our confidence on it is increased. • It is a source for feedback.
  • 23. What is Orchestration? • It is the way we arrange the stages so release candidates flow through them, in their way to production.
  • 24. Tips for stages & orchestration • Feedback is the key. Arrange stages and orchestration based on the feedback we need. • Stages are filters.The orchestration should be arranged to stop the pipeline if a stage fails. • Stages can contain both manual and automated steps. • Stages can be manually or automatically triggered (approvals.) • Automate as much as possible. Including approvals.
  • 25. More tips for stages & orchestration • Grow your pipeline wide, not long http://bit.ly/1jsNGP5. • Build only once. • Use environment-agnostic binaries. • Version everything.
  • 26. What do we need to know? For each stage: • Meaningful name. • Clear goal. • Does it need a manual approval to be triggered? • Does it need a manual verification when it has finished? • Sources. • Flow (orchestration.)
  • 27. Pipeline-level orchestration (examples) Commit Acceptance testing Manualtesting Release Minimum pipeline Commit Acceptance testing Release Exploratory testing Capacity testing Security testing User Acceptance testing Complex pipeline Fully automated Partially automated, or manual Legend:
  • 29. About sources • Version control. • Artifact repositories. • Environment libraries.
  • 30. Which stages do I need? • Think about the kind of feedback you need. • Think about what should stop a release candidate to get to production. • Create aValue Stream Map.
  • 31. Value Stream Map (example) Assessment Approval Planning UAT Release Acceptance tests CodeSpecification 2 days 1 day Value- added time Wait time Development: cycle time ~ ? 3 days 3 days ? ? ? ? 4 days 1 day 2 days 2 weeks ? ? Delivery: lead time ~ ?
  • 32. Prevalent stages: the Commit stage • Eliminate early release candidates that are unfit for production. • Close to (or the same as) a CI build. • Quick validations: build, unit testing, static analysis, etc. • Packaging. • For Continuous Delivery, it runs on each commit (no branches – feature toggles.) • For other models, decide when it gets triggered (for example, on each merge to trunk.)
  • 33. Prevalent stages: the Commit stage http://bit.ly/1jsSkwA
  • 34. Prevalent stages: the Automated Acceptance Test stage http://bit.ly/1jsSkwA
  • 35. Prevalent stages: the Manual Test stage http://bit.ly/1jsSkwA
  • 36. Prevalent stages: non-Functional Testing stages http://bit.ly/1jsSkwA
  • 37. Activity: defining stages & orchestration „We have a basic suite of automated acceptance tests that we plan to grow along with the system.‰ „The team does (manual) functional testing.‰
  • 38. Activity: defining stages & orchestration „We have a basic suite of automated acceptance tests that we plan to grow along with the system.‰ „The team does (manual) functional testing.‰ „We need to support 2,000 concurrent users.‰
  • 39. Implementation notes • Choose a tool that allows to easily model and visualize the flow. • Choose a tool that supports what you need for orchestration: • Approvals. • Validations. • Parallelization. • Alerts. • Etc.
  • 41. What is an Environment? • A set servers, devices or any other resources we need in order to run and validate a release candidate in its way to production.
  • 42. Tips for defining environments • Prepare for deployment automation. • Lock down environments. Restrict access. • Different stages could target the same environment if needed. • Prepare for auto-provision. • Make environments disposable. DonÊt turn them into bottlenecks. • Environments may not be tied to stages. It should be easy to point any stage to any environment.
  • 43. Activity: defining environments „We have a basic suite of automated acceptance tests that we plan to grow along with the system.‰ „The team does (manual) functional testing.‰ „We need to support 2,000 concurrent users.‰
  • 44. Implementation notes • Use virtualization. • Use cloud-based environments. • Use tools for managing templates, configuration, auto-provision, etc.
  • 46. What is a Step? • Any activity that is done in the context of a stage, that allows us to get feedback and prove the fitness of the release candidate. • Examples: • Deploy a component. • Run automated tests. • Run manual tests. • Update metrics. • Alert the user of some event. • Etc.
  • 47. Tips for defining steps • Consider: • The goal of the stage. • The kind of feedback you need. • Sources. • Targets (environments.) • Build and package only in the Commit stage. • Most times, deployment is present, but not always. • (Automated) Smoke Testing should follow any deployment. • Think about both automated and manual steps.
  • 48. Activity: defining steps „We want to filter out anything producing static analysis warnings.‰ „We want to try exploratory testing.‰ „We may use the same environment for load testing and security testing‰
  • 50. Tips for step automation • Automate everything. • Automate everywhere (for all the environments.) • Preference for automation: • Fully automated steps. • Manually triggered automatic steps. • Manual steps. • Build only once. • Version everything. • Have environment lockdown in mind.
  • 51. Deployment automation considerations • Deploy the same way to every environment.The target environment should be a (implicit) parameter for the automations. • Set up (tool-agnostic) one-click deployments. • Treat configuration tokens as parameters for the automations. • Prepare for rollbacks.
  • 52. Database deployment considerations • Database deployment is not the same as database development. • Decide about the deployment strategy: • Schema & Data compare. • Delta scripts (better for Continuous Delivery.) • ORM tools (schema update, migrations, etc.)
  • 53. Test automation considerations • Q2 tests are not necessarily run through the UI. • Smoke tests may be run through the UI. • Frequently, non-functional testing can be automated. • Leave environments and data in a known state. • A few things canÊt be automated (UAT & Q3 testing.)
  • 54. What do we need to know For each step to be automated: • Automation tool or technology. • Execution model. • Parameters (at least youÊll have the configuration tokens.) • Source / target.
  • 55. About execution models • Native OS tool. • Agent. • Remote execution.
  • 56. Activity: defining automation & tooling „Production environment is in an isolated network‰ „Our operations people wonÊt allow us to install anything there‰
  • 57. #7 Define execution model, monitoring and metrics
  • 58. Continuous Delivery flow model • Pipeline instances are created on each commit.Any commit is a release candidate. • One-piece continuous flow model. • There is no way back.Any error makes the release candidate to be discarded. • Fixes are treated as new release candidates.They are run through the entire pipeline from the beginning.
  • 59. Other flow models • Pipeline instances are created as needed.A release candidate might comprise several commits. • Decide on the batch size. Larger batches are cheaper but limit feedback. • Errors might be fixed in the context of the stage where they arise.
  • 60. Monitoring the pipeline • Transparency. • Rely on a proper tool. • Set up alerts for key events. • Use a Cumulative Flow Diagram (CFD.) • Gather metrics and act on them.
  • 61. Primary metrics (direct evidence) • Cycle time. • Mean Time Between Failures (MTBF.) • Mean Time To Recover (MTTR.)
  • 62. Secondary metrics (circumstantial evidence) • Test coverage. • Duplication of code. • Coupling. • Compilation warnings. • Code churn. • Build frequency • Etc.
  • 63. #8 Plan for future enhancements
  • 64. Examples – DevOps culture • Improve branching model if needed. • Debugging optimization, symbol servers. • Canary releases. • Blue/green deployments. • A/BTesting. • Preventive profiling. • Telemetry, analytics,Application Performance Monitoring (APM.) • Proactive resiliency enablement (Simian army http://nflx.it/SPeTGj)
  • 66. #9 Inspect & adapt
  • 67. Continuously improve the pipeline • Component or architectural changes. • New skills in the team. • New resources, tools, environments. • Reserve time, and make the team accountable for improvement.
  • 68. Summary 1. Define components. 2. Identify sub-pipelines. 3. Define Stages & Orchestration. 4. Define Environments. 5. Define Steps. 6. Define Automation & Tooling. 7. Define execution model, monitoring and metrics. 8. Plan for future enhancements. 9. Inspect & adapt.
  • 69. Thanks! Jose Luis Soria Continuous Improvement Manager at Ria Financial jlsoriat@gmail.com - @jlsoriat http://geeks.ms/blogs/jlsoria Slides: http://www.slideshare.net/jlsoria http://aka.ms/releasepipeline Get a book! #xp2014 @jlsoriat