SlideShare a Scribd company logo
1 of 17
DEV2 -Continuous Delivery in the Real
World - Techniques to Reduce the
Developers Blood Pressure
Presented by Nikolai Blackie
Adaptiv Integration
9th of September 2012
My First Unit Test – 28th October 2003
Agenda
 Continuous Delivery
 Deployment Pipelines
 Configuration Management
 Deployment Scripting
 Octopus Deploy
Software Delivery Anti-Patterns


               Deploying Software Manually


      Deploying to a Production-like Environment Late

      Manual Configuration Management of Production
                      Environments
Continuous Delivery Benefits

               Empowering Teams

                Reducing Errors

                Lowering Stress

              Deployment Flexibility

             Practice Makes Perfect
Principles of Software Delivery

    Repeatable, Reliable Process for Releasing Software

               Automate Almost Everything

       If It Hurts, Do It More, Bring the Pain Forward

                      Build Quality In

     Everybody Is Responsible for the Delivery Process

                 Continuous Improvement
Deployment Pipeline
                                                          Automated             User
 Delivery Team   Version Control   Build & Unit Tests
                                                        Acceptance Tests   Acceptance Tests




                                                                                        Release
Delivery Pipeline
                                                                               Source Control
                               Environment
       Source Code
                               Configuration



                                                                 Continuous Integration Server
                              Deploy & Test
     Build & Unit Test
                             Package Release     Package


Continuous Delivery Server
                                                 QA Initiated            Ops Initiated
                                                 Deployment              Deployment


Environments
                               Automated            User
                                                                      Staging/Production
                             Acceptance Test   Acceptance Test
Deployment Pipeline Best Practices
            Only Build Your Binaries Once

     Deploy the Same Way to Every Environment

            Smoke-Test Your Deployments

           Deploy into a Copy of Production

       Each Change Should Propagate Instantly

     If Any Part of the Pipeline Fails, Stop the Line
Configuration Management
      Keep Absolutely Everything in Version Control
                • Dependent frameworks & components
                         • 3rd Party Binaries
                          • All configuration
                    Application Configuration
            • Application configuration created at deploy time
           • Use a template and environment specific settings
                   Deployment Configuration
     • Configuration for deployment activities derived at deploy time
                   • E.g. Host credentials for AppPools
Deployment Scripting
      Use a deployment script per application package

  Use an Appropriate Technology to Deploy Your Application

   Use the Same Scripts to Deploy to Every Environment

       Evolve Your Deployment System Incrementally

                                 Tips
                       • Always Use Relative Paths
                         • Eliminate Manual Steps
         • Constrain Your Application with Integrated Smoke Tests
PowerShell Deployment Scripting
          Use certificates to enforce security

              Use Deploy Orchestrators
                      • PreDeploy.ps1
                        • Deploy.ps1
                     • PostDeploy.ps1
                    • DeployFailed.ps1
         Create Common PowerShell Modules
                         • BizTalk
                            • IIS
                         • MSMQ
                           • SQL
                    • Windows Services
Octopus Deploy
                              NuGet
                             Package
       CI
                                2          Octopus Server
 Package Release    NuGet
                   Package    NuGet
                      1      Package
                                3          Package Step 1

                                           Package Step 2

                                           Package Step 3



                        Octopus Tentacle   Octopus Tentacle   Octopus Tentacle
                             UAT               Staging           Production
Continuous Delivery Servers
                   Octopus Deploy

              Team Foundation Server

                  ThoughtWorks Go

                Urban{Code} uDeploy

      Nolio Application Release Operations Suite

                 XebiaLabs Deployit
Code Camp Sponsors
Questions?

More Related Content

What's hot

Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Aaron Eden
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Nish Mahanty
 

What's hot (20)

The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber. Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber.
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practice
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
 
IP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryIP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous Delivery
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
 
Chef Hack Day Denver
Chef Hack Day Denver Chef Hack Day Denver
Chef Hack Day Denver
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
 
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins Team
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 

Viewers also liked

‘Policy-making for digital development: the role of the government’ by Ismael...
‘Policy-making for digital development: the role of the government’ by Ismael...‘Policy-making for digital development: the role of the government’ by Ismael...
‘Policy-making for digital development: the role of the government’ by Ismael...
i2tic
 
Award in graduate
Award in graduateAward in graduate
Award in graduate
Andrew Lin
 

Viewers also liked (18)

Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...
 
Biztalk 2013 Launch Briefing
Biztalk 2013 Launch BriefingBiztalk 2013 Launch Briefing
Biztalk 2013 Launch Briefing
 
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
 
Work at LAICO
Work at LAICOWork at LAICO
Work at LAICO
 
03 Biz Talk 2010 Hands On Day Adapter Pack
03 Biz Talk 2010 Hands On Day  Adapter Pack03 Biz Talk 2010 Hands On Day  Adapter Pack
03 Biz Talk 2010 Hands On Day Adapter Pack
 
‘Policy-making for digital development: the role of the government’ by Ismael...
‘Policy-making for digital development: the role of the government’ by Ismael...‘Policy-making for digital development: the role of the government’ by Ismael...
‘Policy-making for digital development: the role of the government’ by Ismael...
 
Manual de Practicas c++
Manual de Practicas c++Manual de Practicas c++
Manual de Practicas c++
 
Chapter1
Chapter1Chapter1
Chapter1
 
Best Seller Vietnam Tour 7 Days
Best Seller Vietnam Tour 7 DaysBest Seller Vietnam Tour 7 Days
Best Seller Vietnam Tour 7 Days
 
Award in graduate
Award in graduateAward in graduate
Award in graduate
 
Chapter6
Chapter6Chapter6
Chapter6
 
I7 processor
I7 processorI7 processor
I7 processor
 
Chapter 1 ລະບົບຄອມພິວເຕີ (Computer System)
Chapter 1 ລະບົບຄອມພິວເຕີ (Computer System)Chapter 1 ລະບົບຄອມພິວເຕີ (Computer System)
Chapter 1 ລະບົບຄອມພິວເຕີ (Computer System)
 
Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future
 
Cognición social
Cognición socialCognición social
Cognición social
 
EL HARDWARE Y SUS PARTES
 EL HARDWARE Y SUS PARTES  EL HARDWARE Y SUS PARTES
EL HARDWARE Y SUS PARTES
 
Sales strategy for big pharma.
Sales strategy for big pharma.Sales strategy for big pharma.
Sales strategy for big pharma.
 
Tech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKsTech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKs
 

Similar to Continuous Delivery in the real world - techniques to reduce the developers blood pressure

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
Daniel
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
Promet Source
 

Similar to Continuous Delivery in the real world - techniques to reduce the developers blood pressure (20)

PowerPoint Presentation
PowerPoint PresentationPowerPoint Presentation
PowerPoint Presentation
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Service engineering
Service engineeringService engineering
Service engineering
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Blue Monitor Software Development
Blue Monitor Software DevelopmentBlue Monitor Software Development
Blue Monitor Software Development
 
Blue Monitor Systems Software Development Services
Blue Monitor Systems Software Development ServicesBlue Monitor Systems Software Development Services
Blue Monitor Systems Software Development Services
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Continuous Delivery and the Cloud
Continuous Delivery and the CloudContinuous Delivery and the Cloud
Continuous Delivery and the Cloud
 
CD with spinnaker
CD with spinnakerCD with spinnaker
CD with spinnaker
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 

More from Nikolai Blackie

More from Nikolai Blackie (8)

Event driven architectures for eCommerce Integration
Event driven architectures for eCommerce IntegrationEvent driven architectures for eCommerce Integration
Event driven architectures for eCommerce Integration
 
Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0
 
Building Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure EventBuilding Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure Event
 
ACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal RumbleACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal Rumble
 
.NET Alice in a Java Integration Wonderland - Mule Anypoint Platform Microsof...
.NET Alice in a Java Integration Wonderland - Mule Anypoint Platform Microsof....NET Alice in a Java Integration Wonderland - Mule Anypoint Platform Microsof...
.NET Alice in a Java Integration Wonderland - Mule Anypoint Platform Microsof...
 
Global Windows Azure Bootcamp (GWAB) Auckland 2014 - Windows Azure Integrati...
Global Windows Azure Bootcamp (GWAB)  Auckland 2014 - Windows Azure Integrati...Global Windows Azure Bootcamp (GWAB)  Auckland 2014 - Windows Azure Integrati...
Global Windows Azure Bootcamp (GWAB) Auckland 2014 - Windows Azure Integrati...
 
Microsoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/AzureMicrosoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/Azure
 
Acsug scalable windows azure patterns
Acsug scalable windows azure patternsAcsug scalable windows azure patterns
Acsug scalable windows azure patterns
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Continuous Delivery in the real world - techniques to reduce the developers blood pressure

  • 1. DEV2 -Continuous Delivery in the Real World - Techniques to Reduce the Developers Blood Pressure Presented by Nikolai Blackie Adaptiv Integration 9th of September 2012
  • 2. My First Unit Test – 28th October 2003
  • 3. Agenda Continuous Delivery Deployment Pipelines Configuration Management Deployment Scripting Octopus Deploy
  • 4. Software Delivery Anti-Patterns Deploying Software Manually Deploying to a Production-like Environment Late Manual Configuration Management of Production Environments
  • 5. Continuous Delivery Benefits Empowering Teams Reducing Errors Lowering Stress Deployment Flexibility Practice Makes Perfect
  • 6. Principles of Software Delivery Repeatable, Reliable Process for Releasing Software Automate Almost Everything If It Hurts, Do It More, Bring the Pain Forward Build Quality In Everybody Is Responsible for the Delivery Process Continuous Improvement
  • 7. Deployment Pipeline Automated User Delivery Team Version Control Build & Unit Tests Acceptance Tests Acceptance Tests Release
  • 8. Delivery Pipeline Source Control Environment Source Code Configuration Continuous Integration Server Deploy & Test Build & Unit Test Package Release Package Continuous Delivery Server QA Initiated Ops Initiated Deployment Deployment Environments Automated User Staging/Production Acceptance Test Acceptance Test
  • 9. Deployment Pipeline Best Practices Only Build Your Binaries Once Deploy the Same Way to Every Environment Smoke-Test Your Deployments Deploy into a Copy of Production Each Change Should Propagate Instantly If Any Part of the Pipeline Fails, Stop the Line
  • 10. Configuration Management Keep Absolutely Everything in Version Control • Dependent frameworks & components • 3rd Party Binaries • All configuration Application Configuration • Application configuration created at deploy time • Use a template and environment specific settings Deployment Configuration • Configuration for deployment activities derived at deploy time • E.g. Host credentials for AppPools
  • 11. Deployment Scripting Use a deployment script per application package Use an Appropriate Technology to Deploy Your Application Use the Same Scripts to Deploy to Every Environment Evolve Your Deployment System Incrementally Tips • Always Use Relative Paths • Eliminate Manual Steps • Constrain Your Application with Integrated Smoke Tests
  • 12. PowerShell Deployment Scripting Use certificates to enforce security Use Deploy Orchestrators • PreDeploy.ps1 • Deploy.ps1 • PostDeploy.ps1 • DeployFailed.ps1 Create Common PowerShell Modules • BizTalk • IIS • MSMQ • SQL • Windows Services
  • 13. Octopus Deploy NuGet Package CI 2 Octopus Server Package Release NuGet Package NuGet 1 Package 3 Package Step 1 Package Step 2 Package Step 3 Octopus Tentacle Octopus Tentacle Octopus Tentacle UAT Staging Production
  • 14.
  • 15. Continuous Delivery Servers Octopus Deploy Team Foundation Server ThoughtWorks Go Urban{Code} uDeploy Nolio Application Release Operations Suite XebiaLabs Deployit