Я использую AWS CodeDeploy для развертывания своих сайтов и заметил, что это не очень стабильно по скорости; иногда это довольно быстро, но иногда каждый шаг развертывания может занимать минуты. Это довольно неприятно, когда развертывание должно выполняться быстро, в случае ошибок или сбоев.
Я не могу найти никакой документации по скорости CodeDeploy, а также не могу найти никакой логики в том, когда он медленный или когда он быстрый. Есть ли способ ускорить это и узнать, что занимает так много времени?
Простая настройка параметров проверки здоровья вашей целевой группы может сэкономить пару минут.
Это работает, потому что BlockTraffic
и AllowTraffic
оба ждут успешных проверок работоспособности. Интервал проверки работоспособности по умолчанию - 1 проверка каждые 30 секунд, а для успешной проверки работоспособности требуется 5 последовательных 200 ответов. Таким образом, по умолчанию это занимает более 2 минут 30 секунд. И это для каждого экземпляра EC2. Уменьшение интервала проверки работоспособности и ограничение количества необходимых успешных проверок сокращают время развертывания.
CodeDeploy по умолчанию делает очень мало - он берет код из S3 или Github, а затем запускает ваш скрипты по appspec.yml
инструкции файла.
Если ваши развертывания захватывают гигабайты данных из S3, вы обнаружите, что для передачи данных требуется некоторое время (особенно на меньших инстансах EC2 с ограниченной пропускной способностью), но кроме этого задержки развертывания гораздо более вероятны из-за того, что вы делаем в ваших сценариях развертывания.
Шаги развертывания CodeDeploy:
Выделенные жирным шрифтом относятся к CodeDeploy, остальные - к вам. Если вы видите разные задержки, выделенные жирным шрифтом, обратитесь в службу поддержки AWS, но в противном случае вам, скорее всего, придется исследовать свои ловушки.
Другой параметр, который необходимо проверить, - это «Задержка отмены регистрации» целевой группы. Мои настройки проверки работоспособности уже были низкими, и это было узким местом в моем случае.