Recently I’ve been working on a large scale Sitecore 9.02 application that is independently scaled into 8 different Azure AppServices and over 10 SQL PaaS Databases. Deployment is very complicated as different routines and actions need to be executed depending on the server instance. From a technology perspective the deployment consists of an onPrem Build server and Azure DevOps, formally known as VSTS. The build tasks consist of PowerShell scripts, GULP tasks, and package management from Nuget and NPM (Node Package Manager). The build server is configured with the Azure DevOps build agent and the build tasks are setup using templates in Azure DevOps Pipelines. In Total there are 24 build tasks that consist of a fully deployment for Sitecore 9.02.
The key area of the deployment process is described below.
Custom Poweshell Scripts
PowerShell makes up a significant proportion of the deployment tasks. It covers areas such as FTP down and uploads, MSBuild calls with multiple verb types, triggering Gulp tasks (See Below) and “taskkills” to increase the reliability of intermittent failures due to processes not clearing locks on files.