Collective

We’re a worker-owned agency that designs, builds and supports websites for organisations we believe in.

A Practical Guide to Hosting Drupal and LocalGov Drupal on Microsoft Azure

Hosting a Drupal or LocalGov Drupal website on Microsoft Azure offers a wide range of options, from traditional virtual machines to fully managed container platforms. Each approach carries its own balance between control, complexity, and operational overhead.

This guide introduces the main hosting models available in Azure – Linux VMs, App Service, Container Apps, and Azure Kubernetes Service (AKS) – and outlines the supporting services typically used alongside them, such as managed databases and file storage. It’s intended for technical leads and DevOps engineers evaluating how best to host Drupal in Azure. The aim is to help you choose where to sit on the spectrum between full control and managed convenience.

A summary of the hosting options

Azure’s compute options form a spectrum from simple to sophisticated. The table below summarises their relative control, complexity, and best-fit scenarios.

Feature Linux VM App Service Azure Container Apps AKS (Kubernetes)
Control High Low High Very High
Management Overhead High Low Medium Very High
Multi-Container Manual Limited (Preview) Native Native
Learning Curve Medium Low Medium High
Best For Custom stacks, legacy patterns Simple single-site deployments Modern multi-container apps Enterprise-scale platforms

The hosting options

Linux virtual machines (VM)

Running Drupal on a Linux VM mirrors traditional hosting. Apache or Nginx, PHP-FPM, caching layers, and cron are all installed inside the server. This approach offers complete flexibility and is compatible with existing Ansible or shell-based provisioning workflows.

For when you need full control over your environment and prefer familiar tooling, VMs are straightforward to manage. The trade-off is increased operational responsibility.

Advantages

  • Full control over stack configuration, filesystem, and performance tuning.
  • Much of the required knowledge isn’t specific to Azure.
  • Transferable skills from other providers.


Limitations

  • Requires Linux administration competence.
  • Manual responsibility for patching, backups, monitoring, and security hardening.

App Service

Azure App Service is a platform that lets you run web applications using container and removes the need to manage the underlying infrastructure. Features include auto-scaling, managed SSL, and deployment slots. However, Drupal’s operational requirements – running Drush, cron, and file write access – require a custom container and workarounds to get everything functioning properly.

Designed for teams that want minimal server maintenance, but can become quite complex for a bigger Drupal sites.

Advantages

  • No server management.
  • Built-in scaling, HTTPS, and CI/CD integration.


Limitations

  • Limited shell access and workarounds required to run Drush.
  • Multi-container support is not mature.

Azure Container Instances (ACI)

ACI runs one or more containers rapidly without orchestration. It is suitable for lightweight workloads or disposable environments, such as test instances or batch tasks.

A good fit for experimentation or automation tasks, but less appropriate for persistent, production Drupal sites.

Advantages

  • Fast deployment, minimal setup.
  • Suitable for proof-of-concept or short-lived environments.


Limitations

  • Not suitable for stateful, long-running Drupal workloads without additional components.
  • Manual handling of networking and SSL.

Azure Container Apps

Azure Container Apps provides multi-container support with scaling and ingress, but avoids exposing the full Kubernetes control plane. YAML-based configuration is used, with support for container-to-container networking, secrets, and concurrency rules.

Balances flexibility with managed simplicity when a multi-container setup is required.

Advantages

  • Native multi-container design.
  • Easier integration with Azure services (Key Vault, Log Analytics).


Limitations

  • More configuration complexity than App Service.
  • Requires container fluency and attention to security.

Azure Kubernetes Service (AKS)

AKS offers a fully managed Kubernetes environment, exposing all features required to run complex sites in Kubernetes.

Ideal for large, container-native Drupal platforms, but demanding to run effectively.

Advantages

  • Maximum flexibility and infrastructure portability.
  • Aligned with industry-standard DevOps tooling.


Limitations

  • Significant operational burden.
  • Requires in depth knowledge of Kubernetes.

Supporting Azure services for Drupal

Beyond the compute platform, a Drupal deployment in Azure relies on managed services for databases, file storage, networking, and monitoring.

Azure Database for MySQL

A database is required by Drupal, with MySQL or MariaDB being the best supported database engines. Azure Database for MySQL is currently the preferred managed database option for Drupal. Routine maintenance and database operations are managed for you, reducing the need for manual administration.

Three tiers are offered, depending on workload size and consistency needs.

  • Burstable: Suitable for development or staging environments.
  • General Purpose: Recommended for production environments due to consistent I/O.
  • Business Critical: Reserved for heavy workloads and HA requirements.

Azure Files

Drupal requires writable persistent storage for public, private, and cached files. Azure Files offers options suited to containerised workloads with the volumes mounted into the service running Drupal.

  • NFS: Recommended for Linux containers, offering POSIX compatibility.
  • SMB: Alternative, but can introduce permission and latency issues. Has better support when used with Windows.

Azure Front Door

Drupal benefits significantly from using a CDN and reverse proxy cache such as Azure Front Door as it reduces the workload on the application server and improves site performance for users across different regions.

In addition, Front Door offers features like a Web Application Firewall (WAF), SSL termination, and global load balancing., which add layers of performance optimisation and security without complicating the Drupal application itself.

Azure Container Registry (ACR)

If a Drupal is run using a container based method, such as a Web App or AKS, a container registry is required. ACR allows you to build, store, and manage container images and artifacts in a private registry. Alternatives such as GitHub Packages or GitLab Registry may be used if CI/CD is managed elsewhere.

Monitoring and logging

Effective monitoring in Azure requires explicit configuration. The main tools are:

  • Azure Monitor: Central metrics and alerting.
  • Log Analytics: Query-based insights, ideal for Drupal logs.
  • Application Insights: Performance tracing and request profiling.

Backups

Although Azure provides backups for managed databases and storage, application code and custom backup workflows remain the hosting team’s responsibility. A clear, automated backup strategy is still essential.

Source code management and deployment

Azure integrates well with modern CI/CD tools. The choice often depends on where source code already resides.

Azure DevOps

Provides Git repositories, pipelines, artefact management, and project boards. Native Azure integration, but billed per user beyond the free tier. This is a good choice for developers already familiar with Azure Devops or those just getting started with Azure.

GitHub

GitHub Actions supports Azure deployments. The free tier includes 2,000 runner minutes per month. If the code already resides in GitHub or the development team are already familiar with the platform then this is the logical choice.

GitLab

Self-hosted GitLab offers CI/CD, registry, and artefact management. Requires explicit integration with Azure which can be more complex to setup, but maybe a good choice if the developers are already using GitLab.

Conclusion: Choosing your place on the spectrum

Azure does not prescribe how Drupal should be hosted. Instead, it offers a continuum of models:

Linux VM → App Service → Container Apps → AKS

Each step trades control for convenience.

  • A VM offers freedom with full responsibility.
  • App Service reduces burden but limits custom operations.
  • Container Apps and AKS support modern, container-native platforms, with AKS demanding the highest operational investment.

Choosing the right model is less about Drupal compatibility and more about an organisation’s ability to operate infrastructure sustainably. Azure supports them all – the decision lies in how much of the platform you wish to manage.

Meet the Authors
Back to blog