Как развертывание CI до AWS обычно работает в масштабе? - PullRequest
0 голосов
/ 05 августа 2020

Я знаком с развертыванием личного приложения на Heroku с помощью git push и его масштабированием за счет добавления дополнительных динамических модулей. Но как выполнить развертывание в масштабируемой инфраструктуре AWS с тысячами частных экземпляров за десятками балансировщиков нагрузки в нескольких регионах?

Я искал и искал это в Google и нашел только учебные пособия "Hello World", описывающие клонирование репо непосредственно в один экземпляр или использование CodeDeploy для развертывания в одном экземпляре, а затем использование групп автомасштабирования. В основном эквивалентно моему примеру с Heroku.

Но как это на самом деле выглядит в производственных системах, скажем, Facebook, GitHub, Twitter, Stripe или других крупных компаниях, если бы они работали на AWS? Они продвигаются к одному «глобальному» экземпляру-бастиону, а затем распространяются на остальные частные экземпляры в нескольких регионах в одном sw oop? Или создан какой-то план (например, план терраформирования), который требует утверждения вручную, а затем есть настраиваемый сценарий развертывания, который sh помещается в экземпляр бастиона, а затем распространяется в каждый регион ? Или это хук git, каким-то образом интегрированный в CI?

Что типично для большого развертывания AWS с точки зрения того, как вы на самом деле развертываете свои последние изменения кода в производственной среде, учитывая, что у вас есть тысячи экземпляров в несколько зон доступности и регионов?

Меня интересует только одна услуга. Я предполагаю, что этот процесс будет повторяться для каждого микросервиса или чего-то еще. Итак, ради вопроса, представьте, что есть один веб-сервер с тысячами экземпляров в каждом регионе. Как обычно будет выглядеть развертывание для этого? Я собираюсь создать несколько действий GitHub для развертывания в AWS в качестве практики для большого проекта, но не знаю, каково состояние дел, и не смог найти никакой информации о topi c.

1 Ответ

1 голос
/ 05 августа 2020

представьте, что есть один веб-сервер с тысячами экземпляров в каждом регионе. Как обычно выглядит развертывание для этого?

Как правило, вы должны создать AWS CodePipeline в одном регионе с исходным этапом с исходным действием GithHub .

В зависимости от проекта, за этим может следовать этап сборки для компиляции кода, загрузки дополнительных зависимостей или выполнения других необходимых операций. За этапом сборки следует этап тестирования, например, для интеграционных тестов. Оба могут быть выполнены с помощью действий CodeBuild .

Если все в порядке, вы можете получить утверждение вручную перед выполнением развертывания на серверах.

Для межрегиональных развертываний вы можете иметь межрегиональные действия CodeDeploy . Действия будут выполнять развертывание для каждого экземпляра в соответствующем регионе.

Хороший пример межрегионального развертывания приведен и объяснен в AWS сообщениях в блоге :

...