стороне aws гарантировать, что один из компонентов приложения будет запущен в 1 единственном экземпляре, а если на старте завалятся хелсчеки в любом - откатится весь стек? Такие вещи принято автоматизировать на своей стороне или есть что-то готовое?
тут все не так просто " один из компонентов приложения будет запущен в 1 единственном экземпляре" - для блю/грин этого компонента уже понадобится 2 экземпляра .допустим делаем через CodeDeploy -> 2 Task Definition (в первой соотв блю, во второй грин версия контейнера) -> 2 Target Group (это требование CodeDeploy) -> 2 разных таргета. Если же абстрагироваться от BG то строго 1 экземпляр ECS сервиса гарантируется при Desired count 1 и отсутствии Auto Scaling сервиса "если на старте завалятся хелсчеки в любом - откатится весь стек" - это ж по факту integration test из коробки коддеплой откатит только один конкретный сервис (непосредственно тот что завалил хелсчек), поэтому если мы хотим хитрую логику по откатке еще и неких других сервисов, то это уже придется городить в рамках CodePipeline причем скорее всего с ручным откатыванием к предыдущим таргетам (не забыть проставить им приличное время существования, дефолтное там 1 час) либо делать что-то более автоматическое на boto3 / whatever
Да, спасибо. Понял уже, что простых путей там нет.
ну интеграционное тестирование это всегда сложная часть а то можно было бы просто в хелсчеки добавить проверку еще и зависимых компонент (и положить при этом рабочий бэк например хех)
Обсуждают сегодня