getting started with octopus deploy

52
Getting started with Octopus Deploy Karoline Klever @karolikl [email protected]

Upload: karoline-klever

Post on 24-Jul-2015

108 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Getting started with Octopus Deploy

Getting started with Octopus Deploy

Karoline Klever@karolikl

[email protected]

Page 2: Getting started with Octopus Deploy

“Our mission is to help .NET developers deliver software to production successfully.” – Octopus Deploy

Page 3: Getting started with 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

Page 4: Getting started with Octopus Deploy

How?

• Discussions

• Theory

• Exercises

Page 5: Getting started with Octopus Deploy

Discussion:Manual vs Automatic

deployments

Page 6: Getting started with Octopus Deploy

Module 1: The Octopus Deploy Server

Page 7: Getting started with Octopus Deploy

Screenshot from demo site: https://demo.octopusdeploy.com/

The Octopus Web Portal

Page 8: Getting started with Octopus Deploy

Environments

Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments

Page 9: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 1: Installing the Octopus Deploy Server

• Exercise 2: Setting up your environments

Page 10: Getting started with Octopus Deploy

Module 2: Octopus Deploy Tenacles

Page 11: Getting started with Octopus Deploy

Tentacles

Tentacle

Octopus Deploy Server

Tentacle

Tentacle

Tentacle

Tentacle

Tentacle

Azure WebsiteServer with FTP

access only

Page 12: Getting started with Octopus Deploy

Tentacle modes

• Listening (recommended)• Listens to TCP port

• Polling• Polls the Octopus Server periodically

Page 13: Getting started with Octopus Deploy

Machines

Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments

Page 14: Getting started with Octopus Deploy

Machine roles

Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-rate-service/process

Page 15: Getting started with Octopus Deploy

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)

Page 16: Getting started with Octopus Deploy

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

Page 17: Getting started with Octopus Deploy

Example

Test

Production

Test serverforms-server & web-

server

Prod server 1forms-server & web-

server

Prod server 2web-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

Page 18: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 3: Installing an Octopus Deploy Tentacle

• Exercise 4: Add a machine to the test environment

Page 19: Getting started with Octopus Deploy

Module 3: Projects and Packages

Page 20: Getting started with Octopus Deploy

Projects

Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects

Page 21: Getting started with Octopus Deploy

Project groups

Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects

Page 22: Getting started with Octopus Deploy

Packages

• NuGet packages

• Feeds• Built-in Octopus feed• External feed

Page 23: Getting started with Octopus Deploy
Page 24: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 5: Creating a project

• Exercise 6: Uploading a package

Page 25: Getting started with Octopus Deploy

Module 4: The deployment process

Page 26: Getting started with Octopus Deploy

Deployment process

Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/process

Page 27: Getting started with Octopus Deploy

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

Page 28: Getting started with Octopus Deploy

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

Page 29: Getting started with Octopus Deploy

Rolling deployments

• Run all steps on machine A before running them on machine B

• Child steps

Page 30: Getting started with Octopus Deploy

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

Page 31: Getting started with Octopus Deploy

Releases

Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/releases/2.9.3102

Page 32: Getting started with Octopus Deploy

Variables

Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1

Page 33: Getting started with Octopus Deploy

Variable

• Name• Value• Scope• Environments• Machines• Roles

#{VariableName}

Page 34: Getting started with Octopus Deploy

Example

• Load balanced application in production, only one server should index content.

Page 35: Getting started with Octopus Deploy

Example

• Load balanced application in production, only one server should index content.

Name Value Scope

RunIndexer false Production

RunIndexer true Production; Machine A

Page 36: Getting started with Octopus Deploy

System variables

http://docs.octopusdeploy.com/display/OD/System+variables

Page 37: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 7: Defining your deployment process

Page 38: Getting started with Octopus Deploy

Module 5: Advanced topics

Page 39: Getting started with Octopus Deploy

Lifecycles

Step templates

Script modules

Library variable sets

Page 40: Getting started with Octopus Deploy

Lifecycles

Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/lifecycles/lifecycle-ProjectGroups-1

Page 41: Getting started with Octopus Deploy

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.

Page 42: Getting started with Octopus Deploy

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

Page 43: Getting started with Octopus Deploy

Automatically deploy to an environmentExample: 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

Page 44: Getting started with Octopus Deploy

Define the number of releases to keep

Retention policies• Number of releases to keep• Number of days to keep a release

Page 45: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 8: Configuring a lifecycle

Page 46: Getting started with Octopus Deploy

Step templates

Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/steps/ActionTemplates-1

Page 47: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 9: Create a step template

Page 48: Getting started with Octopus Deploy

Script modules

Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/scripts/LibraryVariableSets-33

Page 49: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 10: Create a script module

Page 50: Getting started with Octopus Deploy

Library variable sets

Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1

Page 51: Getting started with Octopus Deploy

Lab

http://octopusdeploylab.azurewebsites.net/

• Exercise 11: Create a variable set

Page 52: Getting started with Octopus Deploy

Keep in touch!

Karoline Klever@karolikl

[email protected]