Reliably deploying applications is hard with today's fast-paced development lifecycles. In this course, Deploying .NET applications with Octopus Deploy, you'll learn to set up a deployment pipeline from scratch. First, you'll learn about the concepts Octopus Deploy uses and how to configure it. Next, you'll learn how to set up a deployment pipeline for an ASP.NET web application and a Windows Service. Finally, you'll learn how to customize and tweak this pipeline to adapt to your needs. When you're finished with this course, you'll have the ability to set up and configure Octopus Deploy and create a continuous deployment strategy.
Course Overview Hi everyone, my name is Kenneth Truyers, and welcome to my course, Deploying. NET Applications with Octopus Deploy. I'm a freelance. NET developer and Microsoft MVP with over 10 years of experience in developing and maintaining large-scale. NET applications. Deploying applications is a small and often overlooked, but very important part of the application lifecycle management. Continuous delivery is the next logical step of the continuous integration. In this course, we're going to use Octopus Deploy to build a continuous deployment pipeline. Some of the major topics that we will cover include setting up and configuring an Octopus Deploy server, deploying an ASP. NET web application and a Windows Service, and tweaking the pipeline for maximum flexibility. By the end of this course, you'll be able to use these concepts to set up your own deployment server, create your own continuous deployment pipeline, and start applying applications with a high degree of reliability. Before beginning the course, you should be familiar with Visual Studio and Windows Server. I hope you will join me on this journey to learn about continuous deployment with the Deploying. NET Applications with Octopus Deploy course at Pluralsight.
Introduction Hi, and welcome to this course on Deploying. NET Applications with Octopus Deploy. Octopus Deploy is a deployment automation tool, which will save you countless hours and headaches deploying applications. It allows you to update your application to the latest and greatest version with great confidence while minimizing or eliminating downtime. Software development has evolved rapidly over the last years, and we've seen huge improvements and wide acceptance for agile methodologies with fast iterations and short feedback loops to improve businesses. Unfortunately, deployments of applications have long been an afterthought, while arguably, it's one of the most important parts in our application lifecycle. Manual deployments through FTP, copy-paste, or any other method all have one thing in common, human intervention. In this rapid environment, we quickly become the weakest link. Repeating the exact same process over and over is not one of our strong suits, though. Manual deployments are time-consuming, repetitive, boring, and very error prone. A common solution for this problem is creating deployment manuals that describe the exact process. However, they quickly become obsolete and out of sync with the situation in the real world. In this course, I'll show you how we can use Octopus Deploy to deploy ASP. NET Web Applications and Windows Services. After this course, you will be able to deploy your applications as fast as possible with a high degree of confidence, while giving your business a high degree of visibility.
Installing and Configuring Octopus Deploy In this module, I will show you how to set up an environment from scratch to use when we build a deployment pipeline later on in the course. To do so, I'll first install and configure the central Octopus Deploy server. Next, we'll create a QA and Live environment, and with the environments in place, we can then install Tentacles on our deployment targets, and link them to the central server. By the end of this module, we will have created a complete Octopus Deploy installation ready to deploy our code to four different deployment targets in two environments.
Deploying Web Application In this module, we will start building our deployment pipeline. With the server in place, our environments, and four deployment targets set up, we can now start deploying applications. We will create a deployment pipeline for the demo web application discussed in module one. To do this, we will create a new project using the dashboard and configure the steps needed for deployment, as well as where it should be deployed to. Once the project is in place, the next thing we need to do is create and push a NuGet package of our application to Octopus Deploy's NuGet feed. We'll look at the various possibilities of doing this. When the package is available, we can then create a new release. Lastly, we'll deploy this release of our application to QA, and then to Live. Note that since we're deploying a web application, you need to have IIS installed on the relevant deployment targets.
Deploying Windows Services In this module, we'll take our second application, the Windows Service, and configure and deploy it to QA and Live. The process for deploying a Windows Service is largely the same to that of deploying web applications. This way, Octopus Deploy ensures a familiar workflow regardless of the application type. It's only when we create the project and define the steps that we have to modify some Windows Service specific settings. Therefore, in this module, I will execute the same steps as the demos in the previous module, but I'll point out the differences in the step definitions.
Parameterizing Deployments with Variables In this module, we will see how you can parameterize your deployments with variables. First, I'll explain the difference between deploy time variables and build time variables. We'll look into some use cases for each of them, and define the criteria to use each type. Next, I'll show you how you can define and use variables inside step templates. Then, I'll show you how we can use variables to configure our applications, and after that, we'll look into how you can manage your variables with variable sets. Lastly, we'll look at built-in variables and the method of debugging your variables.
Reusing Step Templates In this module, I'll show how we can reuse existing step definitions to make our deployment process more flexible. Up until now, we have only used the deploy package step in our demo application. Octopus Deploy provides several other step types. We'll look into these and describe what each of those steps can do. Next, we'll look at how you can build your own step templates. Then we'll look at some step templates built by the community and how you can use them in your deployments. And with that knowledge, we'll then build a custom step template that sends a notification on the slack channel and use it for both our projects. Lastly, we'll look at a way to make the importing of custom step templates easier by using a browser extension.
Final Words Congratulations on finishing the course on Deploying. NET Applications with Octopus Deploy. In this last module, I will go over the items we discussed in the previous modules and highlight the most important parts. Apart from the bits we talked about, I'll also discuss the bits of Octopus Deploy that were outside the scope of this course and briefly explain what they can be used for. At the end of the module, I will also give some pointers for more learning resources on Octopus Deploy.