Deploying a NodeJs app to an Ubuntu Virtual Machine hosted with Azure using Azure DevOps should be pretty straightforward. Turns out, it is quite a lot more finicky than might appear!
Setting up continuous deployment on an Azure Function app can save a lot of time, particularly if your development process follows small, agile deployments where you may deploy to your production environment multiple times a day or week.