Я знаком с развертыванием личного приложения на Heroku с помощью git push
и его масштабированием за счет добавления дополнительных динамических модулей. Но как выполнить развертывание в масштабируемой инфраструктуре AWS с тысячами частных экземпляров за десятками балансировщиков нагрузки в нескольких регионах?
Я искал и искал это в Google и нашел только учебные пособия "Hello World", описывающие клонирование репо непосредственно в один экземпляр или использование CodeDeploy для развертывания в одном экземпляре, а затем использование групп автомасштабирования. В основном эквивалентно моему примеру с Heroku.
Но как это на самом деле выглядит в производственных системах, скажем, Facebook, GitHub, Twitter, Stripe или других крупных компаниях, если бы они работали на AWS? Они продвигаются к одному «глобальному» экземпляру-бастиону, а затем распространяются на остальные частные экземпляры в нескольких регионах в одном sw oop? Или создан какой-то план (например, план терраформирования), который требует утверждения вручную, а затем есть настраиваемый сценарий развертывания, который sh помещается в экземпляр бастиона, а затем распространяется в каждый регион ? Или это хук git, каким-то образом интегрированный в CI?
Что типично для большого развертывания AWS с точки зрения того, как вы на самом деле развертываете свои последние изменения кода в производственной среде, учитывая, что у вас есть тысячи экземпляров в несколько зон доступности и регионов?
Меня интересует только одна услуга. Я предполагаю, что этот процесс будет повторяться для каждого микросервиса или чего-то еще. Итак, ради вопроса, представьте, что есть один веб-сервер с тысячами экземпляров в каждом регионе. Как обычно будет выглядеть развертывание для этого? Я собираюсь создать несколько действий GitHub для развертывания в AWS в качестве практики для большого проекта, но не знаю, каково состояние дел, и не смог найти никакой информации о topi c.