Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Getting started with Octopus Deploy

How do you automate the non-existing deployment routines of an organization with over 100 different customers, each having their own environments? How do you convince the leaders, developers and customers to give you the resources needed in order to automate everything? Is it really possible to introduce a deployment routine that works for everyone?

In less than six months, Karoline transformed the deployment routines at Epinova by introducing Octopus Deploy to the organization. She will take you through the steps needed to get started, the pitfalls along the way, and success that Octopus Deploy has become.

In this workshop we will start out by installing an Octopus Deploy server and tentacle on your laptop, before looking at the basic concepts of Environments, Machines, Roles and Projects. You will create a project of your own and deploy this using Octopus Deploy before we round off by looking at the advanced topics of Script modules, Step templates, Variable sets and Retention Policies.

At the end of this workshop, you'll have all the knowledge you need in order to create a more efficient and failproof deployment process for your project. Keep calm and deploy to production!

  • Be the first to comment

Getting started with Octopus Deploy

  1. 1. Getting started with Octopus Deploy Karoline Klever @karolikl karolikl@gmail.com
  2. 2. “Our mission is to help .NET developers deliver software to production successfully.” – Octopus Deploy
  3. 3. 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
  4. 4. How? • Discussions • Theory • Exercises
  5. 5. Discussion: Manual vs Automatic deployments
  6. 6. Module 1: The Octopus Deploy Server
  7. 7. Screenshot from demo site: https://demo.octopusdeploy.com/ The Octopus Web Portal
  8. 8. Environments Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments
  9. 9. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 1: Installing the Octopus Deploy Server • Exercise 2: Setting up your environments
  10. 10. Module 2: Octopus Deploy Tenacles
  11. 11. Tentacles Tentacle Octopus Deploy Server Tentacle Tentacle Tentacle Tentacle Tentacle Azure Website Server with FTP access only
  12. 12. Tentacle modes • Listening (recommended) • Listens to TCP port • Polling • Polls the Octopus Server periodically
  13. 13. Machines Screenshot from demo site: https://demo.octopusdeploy.com/app#/environments
  14. 14. Machine roles Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-rate-service/process
  15. 15. 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)
  16. 16. 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
  17. 17. 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
  18. 18. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 3: Installing an Octopus Deploy Tentacle • Exercise 4: Add a machine to the test environment
  19. 19. Module 3: Projects and Packages
  20. 20. Projects Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects
  21. 21. Project groups Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects
  22. 22. Packages • NuGet packages • Feeds • Built-in Octopus feed • External feed
  23. 23. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 5: Creating a project • Exercise 6: Uploading a package
  24. 24. Module 4: The deployment process
  25. 25. Deployment process Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/process
  26. 26. 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
  27. 27. 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
  28. 28. Rolling deployments • Run all steps on machine A before running them on machine B • Child steps
  29. 29. 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
  30. 30. Releases Screenshot from demo site: https://demo.octopusdeploy.com/app#/projects/octofx-trading-website/releases/2.9.3102
  31. 31. Variables Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1
  32. 32. Variable • Name • Value • Scope • Environments • Machines • Roles #{VariableName}
  33. 33. Example • Load balanced application in production, only one server should index content.
  34. 34. Example • Load balanced application in production, only one server should index content. Name Value Scope RunIndexer false Production RunIndexer true Production; Machine A
  35. 35. System variables http://docs.octopusdeploy.com/display/OD/System+variables
  36. 36. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 7: Defining your deployment process
  37. 37. Module 5: Advanced topics
  38. 38. Lifecycles Step templates Script modules Library variable sets
  39. 39. Lifecycles Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/lifecycles/lifecycle-ProjectGroups-1
  40. 40. 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.
  41. 41. 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
  42. 42. 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
  43. 43. Define the number of releases to keep Retention policies • Number of releases to keep • Number of days to keep a release
  44. 44. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 8: Configuring a lifecycle
  45. 45. Step templates Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/steps/ActionTemplates-1
  46. 46. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 9: Create a step template
  47. 47. Script modules Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/scripts/LibraryVariableSets-33
  48. 48. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 10: Create a script module
  49. 49. Library variable sets Screenshot from demo site: https://demo.octopusdeploy.com/app#/library/variables/LibraryVariableSets-1
  50. 50. Lab http://octopusdeploylab.azurewebsites.net/ • Exercise 11: Create a variable set
  51. 51. Keep in touch! Karoline Klever @karolikl karolikl@gmail.com

×