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.

Octopus Deploy: Automating .NET Deployments

Octopus Deploy is a tool for .NET deployment automation. You can use it to deploy IIS websites, Windows services, and even certificates and scripts that you need to run on remote machines.

Octopus Deploy has the potential to make deploying from the build server to remote machines painless and repeatable- but there are some things you may want to know up front to make that happen. This session will explore why you might want to try Octopus Deploy, what sort of issues you may run into, and how Ocuvera uses Octopus to manage our on-premise product installations & updates.

Presented at Nebraska.Code() on May 18, 2017.
Be sure to check out the notes on this slideshare for more details.
Images of Octopus software copyright Octopus Deploy.

  • Be the first to comment

Octopus Deploy: Automating .NET Deployments

  1. 1. Octopus Deploy Presented by @CasseyLottman Software Developer at Ocuvera
  2. 2. Our System • Windows service “hub” running in each hospital • Kinect + computer in each room • Windows desktop app for patient monitoring & alarms • Android phones for alarms & live video • Monitoring websites in Azure
  3. 3. Build servers build. Octopus deploys.
  4. 4. In six months, we went from 1 deployment to 15.
  5. 5. Getting Started
  6. 6. Step 1 – Install Octopus on the server You’ll need your own SQL Server instance.
  7. 7. To the Web Portal! Check out to play around with a real Octopus server.
  8. 8. Octopus has Tentacles.
  9. 9. Options for your Tentacle • Polling Tentacle or Listening Tentacle? • What port to use? • Need to use a proxy? • What environment to add this machine to? • Should it be part of a tenant?
  10. 10. Listening Tentacle My updated version - Polling Tentacle
  11. 11. Getting packages to Octopus • Manual upload in the web UI (gross) • Gulp or Grunt task wrapping octojs • Using Octo.exe from the command line • Extension for TeamCity/TFS/VSTS • Using Nuget.exe • HTTP POST to Octopus API • Your existing, external package repository
  12. 12. Projects and Lifecycles • Project: A cohesive set of steps and configuration variables that correspond to a deployment • Lifecycle: How a release gets promoted through different environments  Default Lifecycle  Something like QA -> Staging -> Production  Override  Deploy to an environment without going through the default lifecycle  Primarily for hotfixes
  13. 13. Tenanted Projects Either the best or the worst new feature in Octopus.
  14. 14. Deployment Steps Now we’re getting to the good stuff.
  15. 15. Variables Powerful, Flexible, Possibly Confusing.
  16. 16. Variable UI – see video - Open in PowerPoint if you want it to crash
  17. 17. Project Variables
  18. 18. All Variables
  19. 19. Project Variable Templates
  20. 20. Common Variable Templates • Values defined by each tenant • Shared across projects & environments • If you only have one project, Project Variable Templates work just as well
  21. 21. Library Variable Sets • Shared across tenants, projects & environments • If you have just one project, can be used to group variables & de-clutter the project variable list
  22. 22. Variable Substitution - OctoStache
  23. 23. Importing Variables You can’t.
  24. 24. Deploy a Release
  25. 25. Version Control Doable, but still a work in progress
  26. 26. I recommend Octopus Deploy for .NET apps.
  27. 27. Deploy .NET apps with Octopus because… • Script as much as you want of your deployment configuration • Don’t script anything if you’d rather not • Ample built-in & community step templates • New tenants feature is a powerful tool for organizing machines & configurations • Easy to start using; powerful enough for complicated setups • Very responsive customer support