Microsoft Azure

Hosted Infrastructure

VMs are always an option, and we use them when we need to. But for us, the superpower of Azure is in the hosted services. App Service lets us deploy code without worrying about the underlying operating system, which means less maintenance and exposure to potential security risks, as the infrastructure is hidden from us (and from would-be attackers) and maintained by Microsoft. Similarly, Hosted SQL lets us basically run a full-fledged SQL Server instance, without worrying about the minutiae of anything sitting below it. We just configure the basic properties, the backup schedule, the version number, the firewall and the service gives us a connection string that always works and is always available.

Beyond App Service and Hosted SQL, other services are available such as Redis and Azure Search, which operate in a similar way. Utilizing this infrastructure means we are able to focus more on development and significantly less on uptime, security, responding to patches or regular updates. The result is a faster development life cycle, more predictable hosting, repeatable results across environments, and simpler backup and recovery. These services also add new features all the time which build on their advantages, such as development slots and new options for scalability.

Monitoring and alerts

One key advantage of an Azure solution is Application Insights, a suite of tools baked-in to measure and analyze key application performance and user behavior. Besides offering developers a broad surface area to query various quality metrics across all tiers of an application, App Insights also has a comprehensive alerting solution that can be configured to notify stakeholders when specific performance thresholds have been exceeded. By leveraging our own experience, we are able to generate intelligent alerting rules that allow us (and, optionally, product owners) to know and respond immediately when a problem occurs with an application, before users even notice.

DevOps integration

Although Azure infrastructure supports a variety of deployment methods, we have found that DevOps gives the most seamless solution out-of-the-box, with integrated security and UI features across the entire development workflow. Work items can be linked to pull requests, which can be linked to pipelines, builds and releases, which are then automatically deployed to hosted infrastructure. Once set up, it continues to work consistently and reliably, requiring extremely little maintenance, which enables developers to spend more time creating amazing solutions.