As part of a personal project, I built a shared hosting platform on Azure. The goal was to support web hosting for PHP-based CMS platforms like WordPress - similar to traditional shared hosting, but fully automated and cloud-native.
What I Set Out to Build
The requirements were simple to state, less simple to deliver:
- Host multiple websites on a LAMP-style stack
- Support multiple PHP versions
- Achieve high availability and performance
- Ensure secure access and traffic flow
- Integrate CI/CD for deployments
- Provide monitoring and logging
What’s Actually In the Platform
To keep it modular, I split the implementation into layers:
- Architecture: a Hub-Spoke design - a shared management hub (Jenkins jumpbox, Key Vault, backups) peered to a platform spoke running the actual hosting VMs, with Azure Front Door and a Load Balancer in front
- Infrastructure provisioning with Terraform
- Configuration management with Ansible - Apache/PHP runtime setup across the compute fleet
- Jenkins as the deployment and operations portal, running Dockerized on the hub’s jumpbox rather than as a separate managed service
I’ll be publishing follow-ups covering each layer in more depth.
