SlideShare a Scribd company logo
1 of 25
Download to read offline
Continuous
Deployments with
Octopus Deploy
Adrian Wright
Pittsburgh Tech Fest 2014
@adrianwright, adriantwright@gmail.com
About Me
▪ Consultant at Summa
▪ .NET architect with 9 years experience
▪ 3 years experience in builds/deployments
▪ Adjunct Faculty Geneva College at one time
▪ Passionate about making teams more productive… automation helps!
Outline
▪ Automation – Why is it hard?
▪ 5 things I like about Octopus
▪ Demo
Automating Stuff
▪ What do we mean when we say “automation”?
▪ Why do we care?
▪ Who’s responsible?
Facts and figures
▪ Source: dzone
▪ 48% are checking in infrastructure changes, environment changes, and system
definitions into source control
▪ 24% of teams deploy a change within one week
▪ Lack of Time and Company Culture leading inhibitors
▪ Tools are NOT an inhibitor
▪ Technical challenges are an inhibitor, but many can be solved
First Level Automation
▪ Continuous integration
▪ Unit tests
▪ Building a deployable package
▪ Automating some deployments?
Second Level Automation
▪ App deployments to Dev, Staging, and Production environments
▪ Database deployments
▪ Integration tests
▪ Auditable deployment trail
Third Level Automation
▪ Infrastructure / VM level automation (outside of today’s scope)
▪ Advanced automated testing
▪ Automated rollbacks (all types of deployments)
▪ Continuous, gated delivery (any time of day)
▪ Advanced topics – web farms, manual intervention workflows, feature switches,
enterprise-wide automation (mobile, etc.)
Things to consider
▪ Needs a management sponsor to break the “we only build functional stuff” cycle
▪ Collect statistics, if necessary
▪ Our QA’s spend 30 minutes deploying a build
▪ 15% of our releases have deployment issues
▪ Deployment automation lives and dies by automated testing
Treat it like a product
▪ Start small
▪ Evaluate vendors
▪ Run an achievable, successful pilot project
▪ Incorporate into daily process (definition of ‘done’)
▪ Build a roadmap
5 things I like about Octopus
Flexible
▪ Based on NuGet – if you can package it, you can deploy it
▪ Deploy to multiple servers in multiple environments
▪ Built for Web apps, windows services, and Azure apps
▪ Deploy everything else with Powershell
▪ Integrate with CI using TeamCity and TFS plugins or CLI or REST API
Improves Your Process/Visibility
▪ Automated build/test/deploy is good for your health
▪ Helps you get the most out of managing Dev, Staging, and Prod environments
▪ Dashboard shows current state of each server in each environment
▪ Auditable trail of who deployed what when, and what went wrong
▪ Link your TeamCity builds with your deployments
▪ Pro-active about alerts
Built for .NET, but don’t stop there
▪ If you can pack it, you can deploy it
▪ Deploy .NET web apps, windows services, SQL Server databases, to traditional
or Azure servers with ease
▪ Built in IIS configuration support
▪ Web.config transforms
▪ Connection string replacement
Excellent Support Team
▪ Quick responses on forum
▪ Monthly or bi-monthly releases
▪ Helpful tutorials, demos, webinars
▪ Public product roadmap
▪ Swag!
Feature-Rich
▪ TeamCity and TFS plugins
▪ OctoPack (NuGet)
▪ Manual Intervention
▪ Team permissions
▪ Security
▪ At-rest encryption
▪ SSL
▪ encrypted backups
▪ two-way trust
Example – Without Octopus
▪ Using TeamCity as a Deployment tool
▪ Deployed 5 web apps/services, each with its own database
▪ A big, complex integration platform
▪ A VB6-based client application with over 150 executables
▪ Windows services to be distributed to 1000+ locations nationwide
▪ Medium/Large team – 25, including Dev, BA, QA
▪ TeamCity was not the perfect solution, but the automation mentality and scripting
were in place to plug in Octopus (TC has more deployment features now)
Example – With Octopus
▪ 4 web apps and databases
▪ Replaced a home-grown deployment automation tool
▪ Small team – 1-2 developers, BA, Project Manager, UX Designer
▪ Initial Octopus implementation took one week
▪ No production deployment errors (yet)
▪ Currently releasing multiple times per week
Demo – getting up and running with Octopus
▪ Set up Dev, Staging, Prod servers on Azure
▪ Set up Mercurial repo (BitBucket)
▪ Create new MVC app
▪ Install TeamCity
▪ Add build for MVC app
▪ Install Octopus Server
Demo
▪ Install Octopus Tentacles on 3 servers (Dev, Test, Prod)
▪ Enabled TeamCity NuGet Server
▪ Add OctoPack to .csproj via nuget
▪ Add NuSpec File
Demo
▪ Add TeamCity Octopus Plugin
▪ Enable Octopack on Build step
▪ Set TC to use a standard build number format (0.9.x)
▪ Configure Octopus to find TC NuGet Feed
▪ Add new NuGet project (include Custom Installation Directory)
▪ Set up IIS apps on all servers
▪ Create Octopus Project
▪ Manually create a release and promote to all servers
Demo
▪ Add transform files
▪ Create Deploy project in TeamCity
▪ Add AssemblyInfoPatcher to the build
▪ Add Environment name and version number to Contact.cshtml
▪ Promote to Dev, Staging, and Prod and verify
Final thoughts
▪ Create a vision for your automation
▪ Challenge company culture
▪ There are many useful automation tools out there. Octopus is a very useful part
of the puzzle.
▪ @adrianwright, adriantwright@gmail.com

More Related Content

What's hot

What's hot (20)

PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Cypress report
Cypress reportCypress report
Cypress report
 
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalSpeed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
 
Version Controlling
Version ControllingVersion Controlling
Version Controlling
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
 
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 .Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Selenoid & Allure - how to make them work together?
Selenoid & Allure -  how to make them work together?Selenoid & Allure -  how to make them work together?
Selenoid & Allure - how to make them work together?
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Visual Studio Release Management - New weltanschauung or natural evolution? @...
Visual Studio Release Management - New weltanschauung or natural evolution? @...Visual Studio Release Management - New weltanschauung or natural evolution? @...
Visual Studio Release Management - New weltanschauung or natural evolution? @...
 
10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols
 
Jenkins
JenkinsJenkins
Jenkins
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
 
Saving Time and Money with Vagrant
Saving Time and Money with VagrantSaving Time and Money with Vagrant
Saving Time and Money with Vagrant
 
An introduction to Atlassian Bitbucket Pipelines
An introduction to Atlassian Bitbucket PipelinesAn introduction to Atlassian Bitbucket Pipelines
An introduction to Atlassian Bitbucket Pipelines
 
Webinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLabWebinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLab
 

Viewers also liked

Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013
Kristoffer Deinoff
 
Paul Allen's Octopus
Paul Allen's OctopusPaul Allen's Octopus
Paul Allen's Octopus
Daryll McDade
 

Viewers also liked (9)

Making of Octopus Deploy - DDD Melbourne 2015
Making of Octopus Deploy - DDD Melbourne 2015Making of Octopus Deploy - DDD Melbourne 2015
Making of Octopus Deploy - DDD Melbourne 2015
 
Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013
 
Octopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiotOctopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiot
 
Paul Allen's Octopus
Paul Allen's OctopusPaul Allen's Octopus
Paul Allen's Octopus
 
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
 

Similar to Octopus Deploy Tech Fest 2014

The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automation
MidVision
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
VMware Tanzu
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 

Similar to Octopus Deploy Tech Fest 2014 (20)

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)
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Astute PeopleSoft 9.2 Sandbox In The Cloud
Astute PeopleSoft 9.2 Sandbox In The CloudAstute PeopleSoft 9.2 Sandbox In The Cloud
Astute PeopleSoft 9.2 Sandbox In The Cloud
 
UiPath Devops.pptx
UiPath Devops.pptxUiPath Devops.pptx
UiPath Devops.pptx
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shahCsharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
Csharp corner toronto vs2019 post launch 10 apr 2019 nilesh shah
 
Tools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineTools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipeline
 
Automated Testing Environments With Kubernetes & GitLab
Automated Testing Environments With Kubernetes & GitLabAutomated Testing Environments With Kubernetes & GitLab
Automated Testing Environments With Kubernetes & GitLab
 
A Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps MetamorphosisA Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps Metamorphosis
 
Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automation
 
Transforming to OpenStack: a sample roadmap to DevOps
Transforming to OpenStack: a sample roadmap to DevOpsTransforming to OpenStack: a sample roadmap to DevOps
Transforming to OpenStack: a sample roadmap to DevOps
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the CloudsDOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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
 
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
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Octopus Deploy Tech Fest 2014

  • 1. Continuous Deployments with Octopus Deploy Adrian Wright Pittsburgh Tech Fest 2014 @adrianwright, adriantwright@gmail.com
  • 2. About Me ▪ Consultant at Summa ▪ .NET architect with 9 years experience ▪ 3 years experience in builds/deployments ▪ Adjunct Faculty Geneva College at one time ▪ Passionate about making teams more productive… automation helps!
  • 3. Outline ▪ Automation – Why is it hard? ▪ 5 things I like about Octopus ▪ Demo
  • 4. Automating Stuff ▪ What do we mean when we say “automation”? ▪ Why do we care? ▪ Who’s responsible?
  • 5. Facts and figures ▪ Source: dzone ▪ 48% are checking in infrastructure changes, environment changes, and system definitions into source control ▪ 24% of teams deploy a change within one week ▪ Lack of Time and Company Culture leading inhibitors ▪ Tools are NOT an inhibitor ▪ Technical challenges are an inhibitor, but many can be solved
  • 6. First Level Automation ▪ Continuous integration ▪ Unit tests ▪ Building a deployable package ▪ Automating some deployments?
  • 7. Second Level Automation ▪ App deployments to Dev, Staging, and Production environments ▪ Database deployments ▪ Integration tests ▪ Auditable deployment trail
  • 8. Third Level Automation ▪ Infrastructure / VM level automation (outside of today’s scope) ▪ Advanced automated testing ▪ Automated rollbacks (all types of deployments) ▪ Continuous, gated delivery (any time of day) ▪ Advanced topics – web farms, manual intervention workflows, feature switches, enterprise-wide automation (mobile, etc.)
  • 9. Things to consider ▪ Needs a management sponsor to break the “we only build functional stuff” cycle ▪ Collect statistics, if necessary ▪ Our QA’s spend 30 minutes deploying a build ▪ 15% of our releases have deployment issues ▪ Deployment automation lives and dies by automated testing
  • 10. Treat it like a product ▪ Start small ▪ Evaluate vendors ▪ Run an achievable, successful pilot project ▪ Incorporate into daily process (definition of ‘done’) ▪ Build a roadmap
  • 11. 5 things I like about Octopus
  • 12. Flexible ▪ Based on NuGet – if you can package it, you can deploy it ▪ Deploy to multiple servers in multiple environments ▪ Built for Web apps, windows services, and Azure apps ▪ Deploy everything else with Powershell ▪ Integrate with CI using TeamCity and TFS plugins or CLI or REST API
  • 13. Improves Your Process/Visibility ▪ Automated build/test/deploy is good for your health ▪ Helps you get the most out of managing Dev, Staging, and Prod environments ▪ Dashboard shows current state of each server in each environment ▪ Auditable trail of who deployed what when, and what went wrong ▪ Link your TeamCity builds with your deployments ▪ Pro-active about alerts
  • 14. Built for .NET, but don’t stop there ▪ If you can pack it, you can deploy it ▪ Deploy .NET web apps, windows services, SQL Server databases, to traditional or Azure servers with ease ▪ Built in IIS configuration support ▪ Web.config transforms ▪ Connection string replacement
  • 15. Excellent Support Team ▪ Quick responses on forum ▪ Monthly or bi-monthly releases ▪ Helpful tutorials, demos, webinars ▪ Public product roadmap ▪ Swag!
  • 16. Feature-Rich ▪ TeamCity and TFS plugins ▪ OctoPack (NuGet) ▪ Manual Intervention ▪ Team permissions ▪ Security ▪ At-rest encryption ▪ SSL ▪ encrypted backups ▪ two-way trust
  • 17. Example – Without Octopus ▪ Using TeamCity as a Deployment tool ▪ Deployed 5 web apps/services, each with its own database ▪ A big, complex integration platform ▪ A VB6-based client application with over 150 executables ▪ Windows services to be distributed to 1000+ locations nationwide ▪ Medium/Large team – 25, including Dev, BA, QA ▪ TeamCity was not the perfect solution, but the automation mentality and scripting were in place to plug in Octopus (TC has more deployment features now)
  • 18. Example – With Octopus ▪ 4 web apps and databases ▪ Replaced a home-grown deployment automation tool ▪ Small team – 1-2 developers, BA, Project Manager, UX Designer ▪ Initial Octopus implementation took one week ▪ No production deployment errors (yet) ▪ Currently releasing multiple times per week
  • 19.
  • 20.
  • 21. Demo – getting up and running with Octopus ▪ Set up Dev, Staging, Prod servers on Azure ▪ Set up Mercurial repo (BitBucket) ▪ Create new MVC app ▪ Install TeamCity ▪ Add build for MVC app ▪ Install Octopus Server
  • 22. Demo ▪ Install Octopus Tentacles on 3 servers (Dev, Test, Prod) ▪ Enabled TeamCity NuGet Server ▪ Add OctoPack to .csproj via nuget ▪ Add NuSpec File
  • 23. Demo ▪ Add TeamCity Octopus Plugin ▪ Enable Octopack on Build step ▪ Set TC to use a standard build number format (0.9.x) ▪ Configure Octopus to find TC NuGet Feed ▪ Add new NuGet project (include Custom Installation Directory) ▪ Set up IIS apps on all servers ▪ Create Octopus Project ▪ Manually create a release and promote to all servers
  • 24. Demo ▪ Add transform files ▪ Create Deploy project in TeamCity ▪ Add AssemblyInfoPatcher to the build ▪ Add Environment name and version number to Contact.cshtml ▪ Promote to Dev, Staging, and Prod and verify
  • 25. Final thoughts ▪ Create a vision for your automation ▪ Challenge company culture ▪ There are many useful automation tools out there. Octopus is a very useful part of the puzzle. ▪ @adrianwright, adriantwright@gmail.com