Learn about Microsoft’s WordPress on Azure App Service, as well as an interesting alternative from WP Engine.
Twenty years old this year, WordPress remains one of the most popular content management tools.
Running a WordPress instance requires a web server and a database, an ideal combination for moving to a virtual infrastructure running in the cloud, either using platform services or bringing your own infrastructure. Bringing your own WordPress installation to Azure still requires managing and patching the underlying OS and the CMS application, as you’re treating Azure as just another host for virtual machines. Yes, it’s an approach that simplifies lifting and shifting existing services from on-premises or from traditional hosting providers, but you’re not really getting the benefits that come with using a hyperscale cloud platform.
Finding WordPress for Azure
If you take a look at the Azure Marketplace, you’ll see many options for running WordPress, from basic installs to complete managed environments, including customized versions. There are many choices, and it can be difficult to pick an option — especially when many offer similar features at similar prices.
WordPress is, at heart, a Hypertext Preprocessor (PHP) application, and you should remember that the only supported PHP on Azure is the one running on Azure App Service for Linux. If you’re running your own or a third-party WordPress on Azure, you should ensure that it’s either running on Azure App Service or that your WordPress vendor is providing PHP support for you.
Microsoft now has its own managed WordPress
One option is Microsoft’s own offering,WordPress on Azure App Service. This is a managed WordPress, running on the familiar Azure App Service and using Microsoft’s MySQL flexible server service for your content and data. Microsoft has tuned its WordPress installation for Azure, building on App Service’s Linux hosting option. It’s also an open-source project with the tools needed to configure and create an instance hosted on GitHub. The project’s GitHub repository contains links to documentation showing the default settings and providing details on what you can change.
As the service is managed, Microsoft handles security patching for you, ensuring that your Content Management System (CMS) is up to date and reducing the risks associated with running WordPress. There’s no need to schedule maintenance, as Microsoft will spin up a new instance, connect it to your content storage and database and then switch away from the old instance.
Using WordPress on Azure App Service
Microsoft built its WordPress solution to take advantage of Azure best practices. The WordPress application runs in a separate virtual network from the database and backup storage, using a local Redis cache to speed up content delivery. The whole service sits behind an Azure Front Door security appliance, with static content served from Azure Blob storage. Usefully, Front Door is configured to work with the Azure Content Delivery Network, so that static content is cached near the edge of the network, with endpoints in many more places than there are Azure regions.
Billing is based on standard Azure App Service rates, and Microsoft provides guidelines on the hosting plans required for expected usage, from a single standard instance handling 120 requests per second to six production instances delivering 21,000 requests per second. You’ll also need to factor in the costs of storage, as Azure’s Managed MySQL bills separately for compute and storage. As well as running in the Azure public cloud, there’s support for its U.S. government cloud, allowing public bodies to use Azure to host their web content.
Microsoft provides guidelines on how to migrate content from existing sites to a managed Azure instance, using a common migration plugin. The free version of the All-in-One WP Migration tool works well for smaller sites, with up to 256MB of content. If you have more, use the premium version. As there’s an upload limit for WordPress on Azure App Service, you’ll need to add a configuration setting to App Service that lifts the limit from 50MB to 256MB. Alternatively, you can use File Transfer Protocol (FTP) to manually upload content from your original site to Azure, importing the SQL data using the PHP control panel. Large sites may need to use several SQL exports.
Scalable WordPress with WP Engine on Azure Kubernetes Service
An interesting alternative comes from managed WordPress provider WP Engine with its recently announced Azure offering. Currently used to run Microsoft’s own Stories news site, WP Engine’s platform has allowed Microsoft to build out its own content platform, one that became increasingly important during the peak of the COVID-19 pandemic. The two companies collaborated on a way to make the platform more scalable, integrating it with Azure’s own managed Azure Kubernetes Service (AKS) platform.
That tooling is now available for the rest of us, with WP Engine’s tools ported to run inside containers and running across multiple Azure regions, scaling with local demand. This improves security by ensuring isolation between WordPress and any other code. AKS will automatically add new worker nodes as required, with Azure’s networking services providing web application firewalls and global routing to those new containers.
It’s an option that shows the benefits of taking a cloud-native approach to more than your own code. Containerized WordPress can be managed with Azure Arc and will run on local AKS via Azure Stack HCI and other edge technologies. That means you aren’t limited to working on Azure; you can take advantage of using it to manage WordPress anywhere you have an Arc-managed Azure environment.
Benefits of mixing cloud isolation and a Platform as a Service approach for WordPress
Managing WordPress takes time and resources, with many unmanaged installs resulting in increased security risks for their hosts. Moving it to isolated cloud instances reduces the risks to your networks, especially if you’re using WordPress for public-facing services. Mixing cloud isolation with a Platform as a Service (PaaS) approach should result in a faster and safer way to deliver content — especially when you add a global content delivery platform.
Read next: The Complete Microsoft Azure Certification Prep Bundle (TechRepublic Academy)