Как использовать миграции Laravel в горизонтально масштабируемых установках с нулевым временем простоя? - PullRequest
2 голосов
/ 19 сентября 2019

Мне нравится масштабировать веб-приложение по горизонтали, то есть запускать его на нескольких узлах и распределять нагрузку по балансировщику нагрузки.В моем случае это приложение Laravel, обеспечивающее миграцию Laravel для контроля версий схемы базы данных.К узлам подключен единственный экземпляр базы данных.

Теперь, если бы я хотел, чтобы время простоя было нулевым, мой обычный подход состоял бы в том, чтобы истощать узлы один за другим и заменять их узлами, на которых запущена новая версия приложения.

Когда и как вы применяете миграции Laravel или, в более общем смысле, обновляете базу данных для новой версии приложения?

Если новая структура базы данных обратно совместима, мои еще не истощенные узлыЗапуск предыдущей версии должен работать нормально.Но как вы поступите с этим, если ваши миграции баз данных не будут обратно-совместимыми (или вы просто не знаете об этом, потому что, в конце концов, смысл надежных автоматизированных процессов состоит в том, что вам не нужно постоянно думать о таких вещах).

Есть статьи, в которых описывается время простоя без нескольких папок в одном экземпляре, но без горизонтального масштабирования.Например, https://laraveldaily.com/how-to-deploy-laravel-projects-to-live-server-the-ultimate-guide/

Есть также много статей о горизонтальном масштабировании в целом.Но я, похоже, не нашел ничего, что объясняло бы, как обращаться с миграцией базы данных.

...