Hi all. We're starting our move from D7 to D8, and are going to be using Docker and Kubernetes (with Jenkins) to manage and deploy our D8 environments.
Since with Docker and Kubernetes deploying as many identical nodes as you want / need is trivial, I'm looking for feedback re choosing the standard one-to-many design of Varnish and Drupal nodes (each Varnish node points at multiple Drupal backends), as opposed to a one-to-one design where each Varnish node points at a single Drupal backend.
We're leaning toward a one-to-one setup since with Kubernetes we could move the health check that Varnish would execute to test a backend as healthy to the Kubernetes layer, add another check in that layer to make sure Varnish itself is healthy, and if a pairing is marked as unhealthy Kubernetes will simply send the request to the next healthy pair.
I don't think this would result in any more pages being put in one Varnish node or another, since if it was one-to-many and a backend is sick Varnish will just try to get the page from the next healthy backend, but it still goes into the same Varnish cache.
In the case of a one-to-one setup, the testing of if something is "sick" simply moves from Varnish to Kubernetes, and since Varnish itself rarely goes down, this is an unlikely occurrence.
Roughed up proof of concept diagrams are attached.
I'd be very interested to see opinions / feedback on any potential disadvantages people can think of with the 1-to-1 design.
Thanks,
Pablo
| Attachment | Size |
|---|---|
| drupal-8-one-to-many.png | 21.36 KB |
| drupal-8-one-to-one.png | 19.18 KB |
Comments
Resolution
Did you ever figure out the best approach?