How We Run Decoupled Websites with 110 Million Hits per Month
Michael Schmid - CTO Amazee
This is not your standard session
Please ask questions right away
The Projects
- Ringier Axel Springer
- Started end 2016
- Multiple Frontends, single Backend
- beobachter.ch
- Consumer Watchdog
- bilanz.ch, handelszeitung.ch
- Bloomberg of Switzerland
- gault-millau.ch
- Swiss GaultMillau Website
- Swiss Paraplegic Center
- 2018
- Single Frontend
- paraplegie.ch
- Infrastructure
- Platform
- Code
- People
- Learnings
Infrastructure
- AWS (can be anywhere)
- Autoscaled
- Multi AZ
Platform
- Completely Dockerized
- Lagoon, Kubernetes, OpenShift
- Fully Autoscaled
First: Drupal only
Decoupled Drupal
Caching Fun
- Reverse Proxy Caching at every level
Multi Decouple Drupal
- Single Drupal Backend
- Multiple Frontends (Monorepo)
- All using the same GraphQL API
Multi Decoupled Drupal
Code
- Monorepo
- Drupal Backend
- GraphQL
- nothing more
- React Frontend
- React & Apollo (Next.js)
- Server Side Rendering
- Persistent GraphQL
CI/CD
- Individual Environments for every
- Branch
- Pull Request
- Frontend can point to any Backend
- PRs Targets
- Customized
- TravisCI/CircleCI for Unit Tests, Behat, etc.
- drupal-dev.io
People
- Strict PR based deployments
- Pagerduty Schedule with Developers
- 1. Developers
- 2. amazee.io 24/7 Engineers
- Chat Communication ChatOps
Learnings
NodeJS as a WebServer is hard
- Developers coming from a Drupal World
- Concept of NodeJS as a Webserver is not fully understood
- Issues with Image Cache Headers, Redirects, Basic Auth
- Implement small nginx container with nodejs container
Learnings
Persistent GraphQL
- Allow POST GraphQL queries in PR and DEV environments
- Ensure to have tests for them :)
Learnings
Complexity as a Service
- CDN functionality and possibilities not fully understood
- "Works in my PR"
- Make sure you have access to People and Resources of your external Services
Learnings
Crisis Communication is Key
- Dedicated communication engineer during incidents
- Chat & ChatOps helps tremendous
- Internal Statuspage for Stakeholders
Questions?
How We Run Decoupled Websites with 110 Million Hits per Month
By Michael Schmid
How We Run Decoupled Websites with 110 Million Hits per Month
- 2,507