SlideShare una empresa de Scribd logo
1 de 52
Getting started with
Octopus Deploy
Karoline Klever
@karolikl
karolikl@gmail.com
“Our mission is to help .NET developers
deliver software to production
successfully.” – Octopus Deploy
Schedule
• Module 1: The Octopus Deploy Server
• Module 2: The Octopus Deploy Tentacles
• Module 3: Projects and packages
• Module 4: The deployment process
• Module 5: Advanced topics
How?
• Discussions
• Theory
• Exercises
Discussion:
Manual vs Automatic deployments
Module 1:
The Octopus Deploy Server
Screenshot from demo site: https://demo.octopusdeploy.com/
The Octopus Web Portal
Environments
Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 1: Installing the Octopus Deploy Server
• Exercise 2: Setting up your environments
Module 2:
Octopus Deploy Tenacles
Tentacles
Tentacle
Octopus Deploy Server
Tentacle
Tentacle
Tentacle
Tentacle
Tentacle
Azure Website
Server with FTP
access only
Tentacle modes
• Listening (recommended)
• Listens to TCP port
• Polling
• Polls the Octopus Server periodically
Machines
Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments
Machine roles
Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-rate-service/process
Example
Test
Production
Test server
Prod server 1 Prod server 2
Applications:
Web Forms Application
(runs on test server + 1 production server)
ASP.NET MVC Application
(runs on test server + both production servers)
Example
Test
Production
Test server
Prod server 1 Prod server 2
Applications:
Web Forms Application
(runs on test server + 1 production server)
Role: forms-server
ASP.NET MVC Application
(runs on test server + both production servers)
Role: web-server
Example
Test
Production
Test server
forms-server & web-server
Prod server 1
forms-server & web-server
Prod server 2
web-server
Applications:
Web Forms Application
(runs on test server + 1 production server)
Role: forms-server
ASP.NET MVC Application
(runs on test server + both production servers)
Role: web-server
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 3: Installing an Octopus Deploy Tentacle
• Exercise 4: Add a machine to the test environment
Module 3:
Projects and Packages
Projects
Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects
Project groups
Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects
Packages
• NuGet packages
• Feeds
• Built-in Octopus feed
• External feed
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 5: Creating a project
• Exercise 6: Uploading a package
Module 4:
The deployment process
Deployment process
Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/process
Step types
• Deploy a NuGet package
• Run a PowerShell script
• Send an email
• Manual intervention required
• Deploy to Windows Azure
• Upload files by FTP
• ... and you can create your own
Sequential vs parallel
• Sequential
• Step A finishes before step B can begin
• Default
• Parallel
• Step A and step B can run at the same time
Rolling deployments
• Run all steps on machine A before running them on machine B
• Child steps
Typical deployment process
• 1. Deploy web rolling
• 1.1. Remove server from load balancer
• 1.2. Deploy web application
• 1.3. Warmup web application
• 1.4. Add server back to load balancer
• 2. Email release notes to product owner
Releases
Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/releases/2.9.3102
Variables
Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1
Variable
• Name
• Value
• Scope
• Environments
• Machines
• Roles
#{VariableName}
Example
• Load balanced application in production, only one server should index
content.
Example
• Load balanced application in production, only one server should index
content.
Name Value Scope
RunIndexer false Production
RunIndexer true Production; Machine A
System variables
http://docs.octopusdeploy.com/display/OD/System+variables
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 7: Defining your deployment process
Module 5:
Advanced topics
Lifecycles
Step templates
Script modules
Library variable sets
Lifecycles
Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/lifecycles/lifecycle-ProjectGroups-1
Lifecycles allow you to...
• ...control the order of deployment from one environment to the next
• ...automatically deploy to an environment when a release is created.
• ...define the number of releases to keep for each phase of the
lifecycle.
Controlling the order of deployment
Example:
A project should be deployed to either Development or Test before it's
deployed to Production.
• Phase 1: Deploy to either Development or Test
• Minimum environments before promotion: 1
• Phase 2: Deploy to Production
Automatically deploy to an environment
Example:
A release will automatically be deployed to Development when the
release is created
• Phase 1: Deploy to either Development or Test
• Automatically deploy to: Development
• Allow manual deployment to: Test
• Minimum environments before promotion: 1
• Phase 2: Deploy to Production
• Allow manual deployment to: Production
Define the number of releases to keep
Retention policies
• Number of releases to keep
• Number of days to keep a release
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 8: Configuring a lifecycle
Step templates
Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/steps/ActionTemplates-1
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 9: Create a step template
Script modules
Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/scripts/LibraryVariableSets-33
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 10: Create a script module
Library variable sets
Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1
Lab
http://octopusdeploylab.azurewebsites.net/
• Exercise 11: Create a variable set
Keep in touch!
Karoline Klever
@karolikl
karolikl@gmail.com

Más contenido relacionado

La actualidad más candente

Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation OmarUsman6
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
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
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
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 Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumSreenivas Makam
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Edureka!
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Simplilearn
 
Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewGiulio Roggero
 
Azure API Management
Azure API ManagementAzure API Management
Azure API ManagementDaniel Toomey
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle IntroductionGanesh Samarthyam
 

La actualidad más candente (20)

Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
DevOps Best Practices
DevOps Best PracticesDevOps Best Practices
DevOps Best Practices
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
devops
devops devops
devops
 
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
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
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 Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
 
Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree view
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 

Destacado

EPiServer Connect For Crm
EPiServer Connect For CrmEPiServer Connect For Crm
EPiServer Connect For CrmKaroline Klever
 
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
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando OctopusAndré Minelli
 
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 во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»Анатолий Кулаков «Octopus Deploy во имя добра»
Анатолий Кулаков «Octopus Deploy во имя добра»SpbDotNet Community
 
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
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
 
How To Upgrade Octopus
How To Upgrade OctopusHow To Upgrade Octopus
How To Upgrade Octopusvincent.biot
 
Octopus Service Level Agreements
Octopus Service Level AgreementsOctopus Service Level Agreements
Octopus Service Level Agreementsvincent.biot
 
Value added reslers for the Octopus Community
Value added reslers for the Octopus CommunityValue added reslers for the Octopus Community
Value added reslers for the Octopus Communityvincent.biot
 
Presentation IT companies
Presentation IT companiesPresentation IT companies
Presentation IT companiesvincent.biot
 
An Mfi Story Revisited
An Mfi Story RevisitedAn Mfi Story Revisited
An Mfi Story Revisitedvincent.biot
 
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
 
Octopus Microfinance Suite Functionalities Overview
Octopus Microfinance Suite Functionalities OverviewOctopus Microfinance Suite Functionalities Overview
Octopus Microfinance Suite Functionalities Overviewvincent.biot
 
Installation Guide - Octopus
Installation Guide - OctopusInstallation Guide - Octopus
Installation Guide - Octopusvincent.biot
 
Presentation on Communication
Presentation on CommunicationPresentation on Communication
Presentation on Communicationguesta3562
 

Destacado (20)

EPiServer Connect For Crm
EPiServer Connect For CrmEPiServer Connect For Crm
EPiServer Connect For Crm
 
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
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
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 во имя добра»
 
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
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
How To Upgrade Octopus
How To Upgrade OctopusHow To Upgrade Octopus
How To Upgrade Octopus
 
Octopus Service Level Agreements
Octopus Service Level AgreementsOctopus Service Level Agreements
Octopus Service Level Agreements
 
Presentation May, 2012
Presentation May, 2012Presentation May, 2012
Presentation May, 2012
 
Value added reslers for the Octopus Community
Value added reslers for the Octopus CommunityValue added reslers for the Octopus Community
Value added reslers for the Octopus Community
 
Presentation IT companies
Presentation IT companiesPresentation IT companies
Presentation IT companies
 
Product Overview
Product OverviewProduct Overview
Product Overview
 
An Mfi Story Revisited
An Mfi Story RevisitedAn Mfi Story Revisited
An Mfi Story Revisited
 
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
 
Octopus Logiciel Microfinance SIG
Octopus Logiciel Microfinance SIGOctopus Logiciel Microfinance SIG
Octopus Logiciel Microfinance SIG
 
Octopus Microfinance Suite Functionalities Overview
Octopus Microfinance Suite Functionalities OverviewOctopus Microfinance Suite Functionalities Overview
Octopus Microfinance Suite Functionalities Overview
 
Installation Guide - Octopus
Installation Guide - OctopusInstallation Guide - Octopus
Installation Guide - Octopus
 
Presentation on Communication
Presentation on CommunicationPresentation on Communication
Presentation on Communication
 

Similar a Getting started with Octopus Deploy

Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStackdevkulkarni
 
Webinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentWebinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentPlatform9
 
Octopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of CodeOctopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of CodeCassey Lottman
 
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
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsAmazon Web Services
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStackdevkulkarni
 
Dockerizing Python Applications
Dockerizing Python ApplicationsDockerizing Python Applications
Dockerizing Python ApplicationsJeffrey Eliasen
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulMert Çalışkan
 
Cypress report
Cypress reportCypress report
Cypress reportAdarsh
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...Amazon Web Services
 
Solum - OpenStack PaaS / ALM
Solum - OpenStack PaaS / ALMSolum - OpenStack PaaS / ALM
Solum - OpenStack PaaS / ALMdevkulkarni
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group MeetupOpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group MeetupTobias Schneck
 
Eclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for DevelopersEclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for DevelopersXavier Coulon
 
Eclipse DemoCamp Munich - Docker Tooling and Vagrant Tooling
Eclipse DemoCamp Munich  - Docker Tooling and Vagrant ToolingEclipse DemoCamp Munich  - Docker Tooling and Vagrant Tooling
Eclipse DemoCamp Munich - Docker Tooling and Vagrant ToolingXavier Coulon
 
GAB 2017 NICE - Docker Hands-On-Lab
GAB 2017 NICE - Docker Hands-On-LabGAB 2017 NICE - Docker Hands-On-Lab
GAB 2017 NICE - Docker Hands-On-LabAZUG FR
 
Automated Testing on Web Applications
Automated Testing on Web ApplicationsAutomated Testing on Web Applications
Automated Testing on Web ApplicationsSamuel Borg
 

Similar a Getting started with Octopus Deploy (20)

Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
 
Webinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentWebinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software Development
 
Octopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of CodeOctopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of Code
 
Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
 
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
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
 
Dockerizing Python Applications
Dockerizing Python ApplicationsDockerizing Python Applications
Dockerizing Python Applications
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Cypress report
Cypress reportCypress report
Cypress report
 
End_to_End_DevOps.pptx
End_to_End_DevOps.pptxEnd_to_End_DevOps.pptx
End_to_End_DevOps.pptx
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
 
Solum - OpenStack PaaS / ALM
Solum - OpenStack PaaS / ALMSolum - OpenStack PaaS / ALM
Solum - OpenStack PaaS / ALM
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group MeetupOpenShift Build Pipelines @ Lightweight Java User Group Meetup
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
 
Eclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for DevelopersEclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for Developers
 
Eclipse DemoCamp Munich - Docker Tooling and Vagrant Tooling
Eclipse DemoCamp Munich  - Docker Tooling and Vagrant ToolingEclipse DemoCamp Munich  - Docker Tooling and Vagrant Tooling
Eclipse DemoCamp Munich - Docker Tooling and Vagrant Tooling
 
GAB 2017 NICE - Docker Hands-On-Lab
GAB 2017 NICE - Docker Hands-On-LabGAB 2017 NICE - Docker Hands-On-Lab
GAB 2017 NICE - Docker Hands-On-Lab
 
Automated Testing on Web Applications
Automated Testing on Web ApplicationsAutomated Testing on Web Applications
Automated Testing on Web Applications
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
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 FresherRemote DBA Services
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
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 WoodJuan lago vázquez
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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 FMESafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
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 educationjfdjdjcjdnsjd
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
"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 ...Zilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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 connectorsNanddeep Nachan
 
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, Adobeapidays
 
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 FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
"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 ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Getting started with Octopus Deploy

Notas del editor

  1. Started out in 2011, now they have over 4,000 customers worldwide.
  2. Go through schedule Lots of exercises and discussions Does everyone have a laptop?
  3. No immediate knowledge of when the last deployment was done or who did it. It's time consuming and error prone, not to mention tedious. Devs don’t want to copy files
  4. The Octopus Deploy Server is where you manage your deployments, projects, environments and machines. It's run as a windows service with an embedded database and an embedded HTTP server running the UI.
  5. An environment is a group of machines you deploy to at the same time, common examples are Test, Acceptance, Staging and Production.
  6. Any server you want to deploy code to must run an Octopus Deploy Tentacle. Tentacles run as windows services, and they execute jobs such as deploying a package or running a script when the Octopus Server tells it to.
  7. A tentacle can run in two modes: Listening or polling. A listening tentacle listens to a TCP port and when the Octopus Server needs to deploy a package it connects to that port. A polling tentacle polls the Octopus Server periodically to check if there are any packages to deploy or scripts to run.   Advantage of listening: Idle most of the time, not taking up any resources, but a port opening and firewall changes are needed.   Advanage of polling: Won't need to open any ports or make any firewall changes, but it uses more resources.
  8. Machines are any machine you want to deploy to, running an Octopus tentacle. It doesn't matter whether it's an Azure VM or a physical server, they're all viewed upon as "machines". A machine belongs to an environment (or several enviroments, if neccessary).
  9. When setting up a deployment step, you can assign the step to a certain role. This means that if you have two machines, one with the role app-server and the other with the role web-server, you can configure your web application to only be deployed to the machine with the role web-server while other applications are only deployed to the app-server.
  10. Projects are the receipe of your deployment. A project is a collection of deployment steps and settings, and together this defines how your application is deployed.
  11. You can setup project groups to group your projects together logically. You can set user permissions and restrict the available environments per project group.
  12. Before deploying your applications, they will have to be bundled into NuGet packages which can then be deployed by Octopus. These packages can be hosted in the built-in Octopus repository or in an external NuGet repository.
  13. Already using Git and TC Go through diagram Last step impossible to specify at this point  
  14. The deployment process is a series of steps that are executed every time you deploy your application. The steps can be scoped to run in one or several environments, they can be configured to run in parallell and you can define whether a step should be executed regardless of the result of previous steps.   This makes it possible to create steps such as:  "If deploying to the production environment and all previous steps in the deployment process have been successful, email the release notes to the product owner."
  15. When you create a deployment step, you can choose between several step types. In addition to this, you can create your own step templates, which we'll look into later.
  16. By default, deployment steps are run in sequence, meaning that one steps finished before the next begins. A -> B -> C   In the newest version of Octopus Deploy, however, it's possible to configure steps to run in parallell.
  17. If you're deploying to several machines at once, you can use child steps to make sure all steps are executed on one machine before deploying to the next (also called rolling deployment)
  18. Explain child steps What type of steps are these?
  19. When you're ready to deploy your code, you create a new release in Octopus Deploy. A release is a snapshot of the current deployment process configuration, variable configuration and the packages chosen for this deployment. A release is typically deployed to one environment and then promoted to the next. This way we're sure there are no differences between the packages or configuration being deployed in the various environments.
  20. There are always configurational differences between environments. For example, the connection string for your application in Test will be different than the connection string used in production. This is often solved by using config transformation in your project, but in certain cases config transformations are not preferred. Either because product owners don't want sensitive information such as connection string checked into the codebase, or because the configurations don't only vary between environments, but also machines.
  21. A variable has a name, a value and a scope. Variables can be set as sensitive, resulting in Octopus encrypting them and never revealing the true value again.
  22. Imagine you have a load balanced web application in production, containing a job that indexes content. There is no need for the indexing job to run on all servers, you actually just want it to run on one of them. As config transformations are scoped to environements, you can use config transforms to enable or disable indexing for ALL the servers, but there's no way of enabling it for some, but not others. In this case, variables in Octopus Deploy come in handy.   This means that we can add an IndexJob variable with the value false, that is scoped to production. You can then add a same instance of the same variable, give it the value true and scope it to the specific machine that needs to run the job.
  23. Imagine you have a load balanced web application in production, containing a job that indexes content. There is no need for the indexing job to run on all servers, you actually just want it to run on one of them. As config transformations are scoped to environements, you can use config transforms to enable or disable indexing for ALL the servers, but there's no way of enabling it for some, but not others. In this case, variables in Octopus Deploy come in handy.   This means that we can add an IndexJob variable with the value false, that is scoped to production. You can then add a same instance of the same variable, give it the value true and scope it to the specific machine that needs to run the job.
  24. Built-in variables. In addition to the variables you create yourself, Octopus Deploy contains lots of system variables you can use in your powershell scripts such as: Machine name, Environment names etc.
  25. Lifecycles are used to set some ground rules as to how your deployment process should be managed. As as example, you wouldn't want a package to be deployed to the production environment before it has been deployed to both test and acceptance, and you can create these rules for your projects by using Lifecycles.
  26. We can configure this by specifying two phases, containing environments: A phase must be successful before the deploy can move on to the next phase.
  27. For the example above we can specify that a release will automatically be deployed to Development when the release is created by setting the "Automatically deploy to" setting for the environment in the phase:
  28. As you create more and more releases, you'll need old releases to clean themselves up. Retention policies define how often releases are deleted, and you can set a retention policy for each phase of a lifecycle or for the project as a whole. The retention policy can be set by the number of releases to keep or the number of days to keep a release.
  29. Step templates are used to create reusable deployment steps. In other words, deployment steps you can use across several projects at the same time.
  30. Script modules are used to create reusable PowerShell cmdlets that you can use across several projects at the same time.
  31. Library variable sets are used to share variables across projects.