As Technossus continues to move forward with process improvement we actively try to identify pain points in our day-to-day process. One of these major pain points was getting an application deployed. At Technossus we practice Agile Software Development which meant every 2-3 weeks depending on project, we would have a deploy. These deploys would at minimum involve one website and some database changes. If there were bug fixes, this process could happen multiple times during a sprint which meant downtime for a developer to handle this process.
We decided that it is much more important for our developers to focus on software and set down the path of automating the Ops portion. We made the shift from Team Foundation Server to VSTS (Visual Studio Team Services). In doing this, we were also able to adopt the usage of Release Manager. This new task based release system gave us the ability to convert from our antiquated XAML build & release templates to a newer more agile system where we can now run a build, qualify it, and promote it saving a significant amount of time and also increasing reliability.
What We Did
When we starting using the new build and release system in VSTS, we found out that most of the release process was either geared toward Azure or required a lot of tedious work. We built a bunch of PowerShell scripts to handle all of the different tasks we needed to accomplish. These tasks included:
- 1.Deploying an IIS Application
- 2.Deploying an IIS Virtual Directory
- 3.Deploying a Sql Database from a Database Project
- 4.Updating App Settings
- 5.Updating Connection Strings
- 6.Enable Automatic SSL Redirect for IIS applications
It is very easy to use PowerShell scripts in Release Manager but configuration can become tedious because you must plug in all of your parameters into a single string line that I usually found myself copying into another text editor. Because of this and the fact we had the opportunity to be trial users, we decided that we would share these tasks with the world so that we could help simplify adoption. That is why we created the On-Premises Release Toolkit.
Thanks to the toolkit, we were able to bring the deploy time of our simplest application down from 5 minutes to under 1 minute. That is one minute of compute release buttontime, not developer. Some of our larger applications required 5 IIS Applications to be deployed as well as a large number of Database changes. Generally the deploys on these applications would take around 20 minutes of the developers time. Thanks to our automation, we were able to drop that down to under 3 minutes. Once again, that is compute time, not developer time. For the developer, a release is a single click away, leaving them the ability to do valuable work. This not only translates to less hassle for the developer but also lower cost for the customer and greater deployment reliability.
For the developer, a release is a single click away, leaving them the ability to do valuable work.
On-Premise Releases Made Easy
We currently use this for all of our internal deployments and will continue adding functionality as needed.
You can find it on the Visual Studio Marketplace here. Just click Install to add it to your VSTS instance. For any documentation or for enhancement requests/issues, check out our GitHub page here for more info.
Please let us know any feedback you have! We would love to continue enhancing this product. If you are interested in having Technossus Automate your Release Management Process, email me at firstname.lastname@example.org.