Cloud Data Centers & Decoupled Drupal CMS Hosting: Support for 100+ Million Monthly Views
Lagoon: Drupal 8, OpenShift, NGINX, Varnish Cache, Redis, & Node.js
Michael Schmid, CTO of Amazee.io, gave a keynote address at the Decoupled Drupal Days Summit in New York on "How to run Decoupled Drupal for 110 million page hits per month." This seminar is instructive for those looking for information on the industry leading way to run Drupal at scale on AWS. Schmid introduced his company's "Lagoon" platform, which is built for optimizing hosting for Decoupled Drupal sites on public cloud hosts using OpenStack. Using Lagoon, Drupal administrators create containers for PHP with NGINX, run the MySQL or MariaDB installation in another container, with Node.js configured on a third set. Containers for Redis, Varnish Cache, & Solr complete the install, with Kubernetes & OpenStack managing load balancing, page caching, & auto-scaling web server nodes to match traffic rates. Lagoon relies upon Red Hat Enterprise Linux and the OpenShift platform, as well as the Original Community Kubernetes Distribution (OKD). Systems administrators will need to use Jenkins, Ansible, Vagrant, TravisCI, Puppet, Docker, & CircleCI for configuration. Programmers & developers will need to be familiar with GraphQL, React, Apollo, Next.js, & Prometheus. Lagoon uses Alpine Linux for container installs from Docker images. CDN integration completes a different production route for anonymous traffic by geo-location, further optimizing data center hardware.
Docker, Lagoon, & Drupal:
Lagoon allows developers to develop locally with Docker, and have the exact same Docker images and Containers running in production in Kubernetes. Lagoon understands how to run a Drupal site with everything you might want to use to make it, including: Varnish, Nginx, PHP, MariaDB, Solr, Elasticsearch, Redis, Drush, Composer, and Console on Kubernetes. And it does it all for you. All you have to do is push to your Git Repository and it’s deployed. It’s that simple.
The workflow process with Lagoon is to read the docker-compose.yml and build disk images which set up the OS for web servers in containers and then push disk images to an OS registry like GitHub or BitBicket. Ansible is used to push the disk image to a git repo and make commits to Node.js for testing. Lagoon deploys disk images from the git repo for Drupal web hosting requirements in Kubernetes clusters. Minishift can be used to run OpenShift server administration on the desktop. Lagoon includes server-side rendering for Node.js & React on NGINX, running Drupal on NGINX in isolated containers separately, then using Varnish Cache to manage HTML file transfers to users & CDNs. Drupal developers & systems administrators can learn more about Lagoon from Michael Schmid at Amazee.io:
Drupal, Kubernetes, & OpenShift:
Each service (Nginx, PHP, MySQL, Solr, Redis) is running in its own container, with Drush running in a separate container for better security. Decoupled projects just have a Node.js container running beside the regular Drupal containers. Cache Tags are very important and are passed through all Cache layers in order to reach the best cache rates. We run a Single Monorepo for Frontend (Node.js) and Backend (Drupal), which provides better parallel deployments and coordinated rollouts of changes. The ability to create individual Environments for each Pull Request and Branch allows for better testing of individual features.
OpenShift: RHEL OpenStack & Origin Community Kubernetes (OKD)
One of the major advantages of the Lagoon platform is the ability to use Drupal with OpenStack & Kubernetes in production on Red Hat Enterprise Linux & OpenShift. Lagoon compiles disk images for containers using Alpine Linux for smaller build sizes. Work with Docker containers and export web server package builds to the cloud through a Git repository. Lagoon provides a utility service between the Drupal CMS script for OpenStack, Kubernetes, & Docker. It also integrates with Ansible, Vagrant, Puppet, & Pygmy for web server automation.
OKD is the Origin community distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD adds developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams.
Decoupled Drupal: React/Gatsby & Node.js + Symfony & PHP
- Pros: Lagoon is built upon Docker with Red Hat OpenShift and can now be used on any public cloud hardware.
Summary: Running Drupal core and Node.js servers together in cloud containers parallel to the MySQL, then routing users to HTML cached content managed by Varnish & Redis, is the industry-leading scalability solution for Decoupled Drupal CMS hosting, which has proven reliable at more than 100 million page views per month on AWS.
Headless Drupal: Building Blazing-Fast Websites with React/GatsbyJS
Kyle Mathews - React, Gatsby, & Drupal 8:
Summary: Decoupled Drupal & Node.js for Cloud Applications
- Docker Desktop
- Acquia Dev Desktop
- Red Hat OpenShift
- Origin Kubernetes (OKD)
- Amazeeio Lagoon
Conclusion: Lagoon is a state-of-the-art data center solution for hosting Drupal CMS websites at scale using NGINX, Varnish Cache, & Redis servers, but Node.js theme layer is required.