geerlingguy / geerlingguy/drupal-for-kubernetes

How can we add support for horizontally scalling Drupal pods?

Open
#65 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
177
Forks
53
PR merge metrics
No merged PRs in 30d

Description

In the [Drupal Documentation](https://www.drupal.org/docs/administering-a-drupal-site/managing-site-performance-and-scalability/server-scaling), the idea of "horizontally scaling" Drupal with multiple application servers is discussed. The idea seems to be simple: install Drupal sites of the same configuration on multiple servers, encode identical database credentials across all. In the case of Kubernetes, this would mean starting Drupal containers of the same configuration as many pods in a cluster. However, with the current paradigm of Drupal deployment dictated by Drush, I am failing to see how this horizontal scaling can be accomplished. The present convention of starting a Drupal site is to use `drush site:install`. This command is unusable for horizontal scaling because it drops all tables in the database. Unfortunately, the maintainers of Drush are not considering this horizontal deployment strategy, and have refused attempts to remedy the [problem](https://github.com/drush-ops/drush/pull/353).

What can be done to programmatically install a Drupal site so that connects to an existing Drubal database?

I have been reading the Drush source code. Should I just build my own custom script inspired by the workings of `drush site:install`?

Contributor guide

No contributing guide indexed for this repository

Research direction

No repository file or test is named. Start with the Drupal scaling documentation and the existing Drush site:install behavior, then review the linked Drush pull request for prior context. Done would need a clearly agreed approach for installing or starting identical Drupal pods against an existing database without dropping its tables.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, kubernetes, php
Domain
backend, cloud, devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.