Marcus' Blog


A blog about things I learn at the keyboard: DevOps, CI/CD, Cloud, Automation, to name a few...
  • Deploying IIS hosted ASP.NET Core apps using app_offline.htm

    Post thumbnail
    Post thumbnail
    In the past, I’ve used the method of placing a app_offline.htm file at the root of an IIS website to throw up a maintenance page. This has been available since ASP.NET 2.0 / 3.5. Lately I’ve got used to deploying sites with no downtime approaches, such as rolling and blue/green.... [Read More]
  • TFS Release Management: Create Release via REST API

    Post thumbnail
    Post thumbnail
    I recently had to come up with a solution to perform a bulk deploy of all apps to an environment using the latest build artifacts. I wanted to use a “wrapper” release definition to orchestrate all of the deployments; similar to how Octopus Deploy’s “Deploy Release Step” works. [Read More]
  • Versioning .Net assemblies using TFS/VSTS Build.BuildID

    Post thumbnail
    Post thumbnail
    The semantic versioning used in all of our TFS/VSTS CI builds uses the predefined variable Build.BuildID for the buildnumber portion of major.minor.revision.buildnumber. The build id is used so we have traceability when troubleshooting. We can easily search for the build and see the associated changes. Major.minor.revision is set in a... [Read More]
  • Chef recipe to install VSTS agents (Windows)

    Post thumbnail
    Post thumbnail
    I recently set out to automate the creation of our Windows build servers that run VSTS agents. Previously the build servers were thought of as “snowflake” servers because of all the software components and customization’s that were needed. This was even more reason to use Infrastructure as Code to get... [Read More]