Michael Schmid ·
Sep 4, 2018 · 2 min read min read
This presentation from Decoupled Drupal Days shows how we set up a complex project, including: Infrastructure, Platform, Code, and People. Everything is hosted on Kubernetes/OpenShift and we want to show specific learnings from hosting Decoupled sites within Docker & Kubernetes. It also explores how we use a CDN and reverse proxy caching architecture.
Our platform is often hosted on AWS but can run anywhere around the world. Our system is fully auto-scaled. This means if the system realizes that it needs more resources it automatically adds them.
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.
Client’s developers are part of Pagerduty schedules because they know best when something broke. We use a single chat channel with all involved people (Operations, Developers, Stakeholders) so that communication is better and faster. Our engineers balance support schedules so we always have expert advice ready when it is needed.
Watch the full video to see exactly how all these things work together — and as always we want to hear your questions and comments!