SlideShare una empresa de Scribd logo
1 de 29
Smarter Deployments with
Octopus Deploy
Thibaud Gravrand
Thibaud Gravrand
• .Net Developer for 7 years
• R&D Manager for Netsize, a Gemalto Company
• http://fr.linkedin.com/in/tgravrand
• https://twitter.com/dolomitt
How did we deploy before ?
• Let’s go for a simple xcopy – why should I need more than that ?
• Some zips here and there
• Attempt of deployment from CI ?
But there are inconvenients
• I think my script will not work in production but let’s try !
• When did we release the last version ?
• I think we did not deliver the same version…
• I forgot one dll, I’ll just add it quickly without being noticed
Let’s write down how we like our
deployments
• Should be a repeatable process
• Should be fully automated
• Should support strong versioning
• Should tackle complex distributed deployments
• Should not forget what we did, who did it and when
• Should take care of development and production environments
• Should allow responsabilities split between teams
• Should be fast !!
Octopus Deploy
• Developed by Paul Stovell since 2011
• Dedicated solution for Windows Platforms
• Heavily relies on nuget package software
Architecture
• Nuget Repository
• Built-in or external
• Central Server
• Relies on RavenDB
• Tentacles (slaves)
How does it work ?
Broken down in 7 Steps
Step 1 – Declare Environment
• Declare Machines
• Associate Environment and Role
• Typical Environments
• DEV, INT, QA, STAGE, UAT, PREPROD, PROD
• Typical Roles
• Front End, Back End FrontEndFrontEnd
BackEndBackEnd
Asymetric Setup
BackEndBackEnd
FrontEndFrontEnd
DEV
BackEndBackEnd
FrontEndFrontEnd
PROD
BackEndBackEnd BackEndBackEnd
FrontEndFrontEndFrontEndFrontEnd
BackEndBackEnd
FrontEndFrontEnd
UAT
Step 2 - Create Package of your application
• Simply add OctoPack Nuget Package to your projects
• Publish Package to Nuget Repository
• Either built-in or external Nuget Repo
• Typically pushed from TeamCity, Jenkins and other CI
• Supported types of projects
• Web Application
• Windows Service
• Windows Executable
Step 3 – Create Project in Octopus Deploy
• Describe your project quickly
• Define Versioning Policy
• Arbitrary & Incremental
• From Main Nuget Package Version
• Define Deployment Policy
• Copy missing or all packages to tentacles
Step 4 – Create Deployment Process
• Describe each step of deployment for your application / solution
• Heavily relies on Powershell 2.0
• Steps can be :
• Setup IIS Site
• Run executable
• Run Powershell Script
• Customize Configuration
• Approval Flow (Email)
• Steps can be run in parallel
Step 5 – Define Variables
• Describe variables for each environment
• Variables are associated to scopes and will be evaluated at deployment
time
• Configuration Files will be transformed according to variable values
• Scopes can be linked to :
• Environment
• Machine
• Step number
Example of Variable Definitions
Variable Value Scope
DatabaseServer dev028db DEV
DatabaseServer qa028db QA
DatabaseServer Prod028db1 PROD;Machine1
DatabaseServer Prod028db2 PROD;Machine2
DNS dev.octopus.com DEV
DNS qa.octopus.com QA
DNS www1.octopus.com PROD;Machine1
DNS www2.octopus.com PROD;Machine2
Step 6 – Create Release
• Creating a release will make a snapshot of :
• Variables
• Steps
• Powershell Scripts
• Package References
• Release can be based on several nupkg files
Example of Release Content
Step 7 – Deploy Release
• Choose a release
• Choose an environment
• Deploy !
• Each step is being executed sequentially
• Configuration Files are being transformed
• Web.Config Transform Feature similar to Visual Studio
• Key Value Replacement
Deployment against Environments
BackEndBackEnd
FrontEndFrontEnd
DEV
BackEndBackEnd
FrontEndFrontEnd
PROD
BackEndBackEnd BackEndBackEnd
FrontEndFrontEndFrontEndFrontEnd
BackEndBackEnd
FrontEndFrontEnd
UAT
Deployment Patterns
• Rolling deployments
• Canary deployments
• Blue-green deployments
• Isolated Octopus Deploy servers
How to integrate into your build
pipeline ?
How to integrate into your build pipeline ?
Flavor of Continuous Delivery
Build Run Unit Tests Deploy to DEV
Run Sanity
Check
Promote to
INT
Run Full
Integration
Tests
Promote to QA
Run Manual
Tests
Promote to
PROD
Some drawbacks
• Manual Rollbacks
• One instance of a project on a tentacle client
• Packages limited to 10 megabytes
• Might be difficult to handle exotic configuration files
Features - Last but not least
• Full Audit Log
• Strong REST API
• Nuget Repository
• Retention Policies
• Permission Model
• Lifecycle Management
• Azure Deployments
• Scheduled Deployments
Advanced Scenarios
• Let’s talk to Nagios or OP/5 to tell them I’m updating some services
• Let’s deploy in PCI-DSS environments
Roadmap
• Linux Deployments through SSH
• Remote Delta Compression
• Offline Deployment
• Replace RavenDB with SQL Server
Resources
• https://demo.octopusdeploy.com/app
• DotNetRocks, episode 1002: Interview with Paul about Octopus
Deploy.
• DotNetRocks, episode 966: Nick discusses structured logging, with an
overview of Octopus at the start.
• Herding Code, episode 143: Paul Stack discusses continuous
integration, and mentions Octopus at 20:23. Scott talks about his
experiences with Octopus.
Thank you !

Más contenido relacionado

La actualidad más candente

DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management toolsSonu Meena
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationMaruti Gollapudi
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesShiva Narayanaswamy
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesAmazon Web Services
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsMatthew David
 
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...Janusz Nowak
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April MeetupShweta Sadawarte
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...Edureka!
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
 
Container Security
Container SecurityContainer Security
Container SecuritySalman Baset
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitAlexander Vanwynsberghe
 

La actualidad más candente (20)

DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management tools
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
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...
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Virtual Container - Docker
Virtual Container - Docker Virtual Container - Docker
Virtual Container - Docker
 
Container Security
Container SecurityContainer Security
Container Security
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 
(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code
 

Destacado

Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando OctopusAndré Minelli
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus DeployKevin Kuszyk
 
Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityTomas Jansson
 
Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»SpbDotNet Community
 
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 2015octopusdeploy
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
 
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 idiotdamovisa
 
Paul Allen's Octopus
Paul Allen's OctopusPaul Allen's Octopus
Paul Allen's OctopusDaryll McDade
 

Destacado (8)

Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
 
Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCity
 
Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»
 
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 Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
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
 

Similar a Smarter deployments with octopus deploy

Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDNEdmund Turbin
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Production Ready WordPress - WC Utrecht 2017
Production Ready WordPress  - WC Utrecht 2017Production Ready WordPress  - WC Utrecht 2017
Production Ready WordPress - WC Utrecht 2017Edmund Turbin
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremKris Buytaert
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
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
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word pressEdmund Turbin
 
Docker for everything
Docker for everythingDocker for everything
Docker for everythingTim Haak
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksGoDataDriven
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshCodefresh
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...E. Camden Fisher
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development PipelineIzzet Mustafaiev
 

Similar a Smarter deployments with octopus deploy (20)

Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Production Ready WordPress - WC Utrecht 2017
Production Ready WordPress  - WC Utrecht 2017Production Ready WordPress  - WC Utrecht 2017
Production Ready WordPress - WC Utrecht 2017
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
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®
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word press
 
Docker for everything
Docker for everythingDocker for everything
Docker for everything
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure Databricks
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development Pipeline
 

Último

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Último (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Smarter deployments with octopus deploy

  • 1. Smarter Deployments with Octopus Deploy Thibaud Gravrand
  • 2. Thibaud Gravrand • .Net Developer for 7 years • R&D Manager for Netsize, a Gemalto Company • http://fr.linkedin.com/in/tgravrand • https://twitter.com/dolomitt
  • 3. How did we deploy before ? • Let’s go for a simple xcopy – why should I need more than that ? • Some zips here and there • Attempt of deployment from CI ?
  • 4. But there are inconvenients • I think my script will not work in production but let’s try ! • When did we release the last version ? • I think we did not deliver the same version… • I forgot one dll, I’ll just add it quickly without being noticed
  • 5. Let’s write down how we like our deployments • Should be a repeatable process • Should be fully automated • Should support strong versioning • Should tackle complex distributed deployments • Should not forget what we did, who did it and when • Should take care of development and production environments • Should allow responsabilities split between teams • Should be fast !!
  • 6. Octopus Deploy • Developed by Paul Stovell since 2011 • Dedicated solution for Windows Platforms • Heavily relies on nuget package software
  • 7. Architecture • Nuget Repository • Built-in or external • Central Server • Relies on RavenDB • Tentacles (slaves)
  • 8. How does it work ? Broken down in 7 Steps
  • 9. Step 1 – Declare Environment • Declare Machines • Associate Environment and Role • Typical Environments • DEV, INT, QA, STAGE, UAT, PREPROD, PROD • Typical Roles • Front End, Back End FrontEndFrontEnd BackEndBackEnd
  • 11. Step 2 - Create Package of your application • Simply add OctoPack Nuget Package to your projects • Publish Package to Nuget Repository • Either built-in or external Nuget Repo • Typically pushed from TeamCity, Jenkins and other CI • Supported types of projects • Web Application • Windows Service • Windows Executable
  • 12. Step 3 – Create Project in Octopus Deploy • Describe your project quickly • Define Versioning Policy • Arbitrary & Incremental • From Main Nuget Package Version • Define Deployment Policy • Copy missing or all packages to tentacles
  • 13. Step 4 – Create Deployment Process • Describe each step of deployment for your application / solution • Heavily relies on Powershell 2.0 • Steps can be : • Setup IIS Site • Run executable • Run Powershell Script • Customize Configuration • Approval Flow (Email) • Steps can be run in parallel
  • 14. Step 5 – Define Variables • Describe variables for each environment • Variables are associated to scopes and will be evaluated at deployment time • Configuration Files will be transformed according to variable values • Scopes can be linked to : • Environment • Machine • Step number
  • 15. Example of Variable Definitions Variable Value Scope DatabaseServer dev028db DEV DatabaseServer qa028db QA DatabaseServer Prod028db1 PROD;Machine1 DatabaseServer Prod028db2 PROD;Machine2 DNS dev.octopus.com DEV DNS qa.octopus.com QA DNS www1.octopus.com PROD;Machine1 DNS www2.octopus.com PROD;Machine2
  • 16. Step 6 – Create Release • Creating a release will make a snapshot of : • Variables • Steps • Powershell Scripts • Package References • Release can be based on several nupkg files
  • 18. Step 7 – Deploy Release • Choose a release • Choose an environment • Deploy ! • Each step is being executed sequentially • Configuration Files are being transformed • Web.Config Transform Feature similar to Visual Studio • Key Value Replacement
  • 19. Deployment against Environments BackEndBackEnd FrontEndFrontEnd DEV BackEndBackEnd FrontEndFrontEnd PROD BackEndBackEnd BackEndBackEnd FrontEndFrontEndFrontEndFrontEnd BackEndBackEnd FrontEndFrontEnd UAT
  • 20. Deployment Patterns • Rolling deployments • Canary deployments • Blue-green deployments • Isolated Octopus Deploy servers
  • 21. How to integrate into your build pipeline ?
  • 22. How to integrate into your build pipeline ?
  • 23. Flavor of Continuous Delivery Build Run Unit Tests Deploy to DEV Run Sanity Check Promote to INT Run Full Integration Tests Promote to QA Run Manual Tests Promote to PROD
  • 24. Some drawbacks • Manual Rollbacks • One instance of a project on a tentacle client • Packages limited to 10 megabytes • Might be difficult to handle exotic configuration files
  • 25. Features - Last but not least • Full Audit Log • Strong REST API • Nuget Repository • Retention Policies • Permission Model • Lifecycle Management • Azure Deployments • Scheduled Deployments
  • 26. Advanced Scenarios • Let’s talk to Nagios or OP/5 to tell them I’m updating some services • Let’s deploy in PCI-DSS environments
  • 27. Roadmap • Linux Deployments through SSH • Remote Delta Compression • Offline Deployment • Replace RavenDB with SQL Server
  • 28. Resources • https://demo.octopusdeploy.com/app • DotNetRocks, episode 1002: Interview with Paul about Octopus Deploy. • DotNetRocks, episode 966: Nick discusses structured logging, with an overview of Octopus at the start. • Herding Code, episode 143: Paul Stack discusses continuous integration, and mentions Octopus at 20:23. Scott talks about his experiences with Octopus.

Notas del editor

  1. Chosen Solution for Deploying web applications for nuget.org
  2. Publication can be done with nuget or octo.exe Strong usage of Nuget Packaging and Strong Versioning (SemVer style) Additionnal tasks in csproj – msbuild will take care of executing tasks
  3. Octopus built-in repository will refuse already existing versions of packages
  4. Variables can be sensitive. Permissions can discriminate accesses to variable values
  5. Create release can be automated when new package is pushed to built-in repository
  6. Rolling Deployment – Sequential deployment – X machines at a time Canary Deployment – Deploy to one and test then deploy to remaining Blue-green Deployment – Deploy alternatively for minimum downtime Isolated – PCI – Split pre-prod and prod