AWS CodeDeploy – это сервис автоматизации развертывания приложений в различных вычислительных сервисах, включая Amazon EC2, AWS Fargate, AWS Lambda и локальные инстансы. CodeDeploy полностью автоматизирует развертывание приложений, устраняя необходимость в ручных операциях. CodeDeploy использует последовательные обновления и контроль работоспособности развертываемых приложений, что предотвращает простои во время развертывания. CodeDeploy предоставляет централизованный контроль развертывания через Консоль управления AWS, интерфейс командной строки, SDK или API, что позволяет запускать, контролировать и отслеживать выполняемые развертывания. Ход развертывания можно контролировать вплоть до отдельных событий. CodeDeploy записывает и сохраняет журнал всех развертываний, поэтому всегда можно изучить хронологию и историю изменений при прошлых развертываниях.
AWS CodeDeploy не зависит от платформы и языка программирования и работает с любыми приложениями, поэтому можно использовать существующий установочный код. Используя API сервиса CodeDeploy, можно просто интегрировать развертывание приложения с существующим процессом доставки ПО или набором инструментов для непрерывного развертывания.
Автоматизированное развертывание инстансов
Воспроизводимое развертывание
С помощью AWS CodeDeploy можно без труда повторять развертывание приложения в различных группах инстансов. CodeDeploy использует модель установки на основе файлов и команд, что позволяет развертывать любые приложения, многократно используя существующий установочный код. Один и тот же установочный код может использоваться для обеспечения единообразия в ходе развертывания, тестирования и выпуска в рабочую среду обновлений для инстансов Amazon EC2. Устранение ручных операций при развертывании увеличивает скорость и надежность процесса доставки ПО.
Автоматическое масштабирование
AWS CodeDeploy позволяет интегрировать развертывание ПО и процессы масштабирования для поддержания приложения в актуальном состоянии в динамических рабочих средах. Для инстансов Amazon EC2 сервис CodeDeploy интегрирован с Auto Scaling. Auto Scaling позволяет автоматически масштабировать ресурсы EC2 в соответствии с заданными условиями, например при резком возрастании трафика. Если в группе Auto Scaling запускается новый инстанс, CodeDeploy получает оповещение и автоматически развертывает приложение на новом инстансе перед добавлением этого инстанса в балансировщик нагрузки Elastic Load Balancing.
Развертывание в локальной среде
AWS CodeDeploy можно использовать для автоматического развертывания программного обеспечения во всех инстансах, работающих в средах разработки и тестирования, а также в рабочей среде, включая инстансы локальных ЦОД (при этом инстансы должны иметь возможность подключаться к публичным адресам AWS). Это позволяет использовать один сервис для единообразного развертывания приложений по всей гибридной архитектуре.
Сокращение простоев
Последовательные и сине‑зеленые обновления
AWS CodeDeploy позволяет обновлять приложения до новых версий без перерывов в работе. AWS CodeDeploy может выполнять сине‑зеленое развертывание на инстансах Amazon EC2, в сервисе Amazon ECS (с типом запуска EC2 или AWS Fargate) или функции AWS Lambda. При сине‑зеленом развертывании новая версия приложения запускается параллельно с предыдущей. Когда новая версия успешно пройдет тестирование и будет признана готовой к использованию, CodeDeploy перенаправит трафик от предыдущей версии приложения к новой в соответствии с заданными настройками.
CodeDeploy также может осуществлять последовательные обновления в группе инстансов Amazon EC2, при этом в любой момент лишь часть инстансов находится в отключенном состоянии. CodeDeploy последовательно переходит от инстанса к инстансу, при этом приложения остаются доступными и продолжают обслуживать трафик. Для функций AWS Lambda входящий трафик постепенно перенаправляется от старой версии к новой.
Контроль работоспособности развертываемых приложений
Чтобы приложения обладали высокой степенью доступности во время развертывания, используется контроль работоспособности развертываемых приложений в сочетании с последовательными обновлениями. Незапланированные простои могут произойти при развертывании неработоспособных обновлений. AWS CodeDeploy контролирует процесс развертывания и останавливает его в случае большого количества ошибок при обновлении.
Остановка и возврат
Вы можете в любое время остановить процесс развертывания приложения с помощью Консоли управления AWS, интерфейса командной строки AWS или любого SDK AWS. Если остановленное развертывание требуется продолжить позднее, можно просто повторить развертывание этой версии. Кроме того, можно немедленно осуществить возврат, выполнив развертывание предыдущей версии.
Централизованный контроль
Мониторинг и контроль
Запускать, контролировать и отслеживать развертывание ПО можно непосредственно в Консоли управления AWS или с помощью интерфейса командной строки AWS, SDK или API. В случае ошибки можно без труда определить, какой конкретно скрипт ее вызвал. Дополнительно можно настроить push‑уведомления и контролировать состояние развертываний с помощью SMS‑сообщений или электронных писем с использованием Amazon Simple Notification Service.
Группы развертывания
Приложение может быть развернуто в нескольких группах развертывания. Группы развертывания используются для сопоставления конфигураций с определенными средами (тестовыми или рабочими). Вы можете проверить версию в тестовой среде и, если результаты положительные, выполнить развертывание той же версии с теми же инструкциями в рабочей среде.
Журнал развертываний
AWS CodeDeploy записывает и сохраняет журнал последних развертываний. Это позволяет посмотреть, какие версии приложения развернуты в каждой из целевых групп развертывания. Можно проконтролировать историю изменений и процент успешных развертываний, проведенных в конкретных группах развертывания. Дополнительно можно исследовать хронологию последних развертываний, чтобы получить подробную информацию об успешных развертываниях и ошибках.
Простота настройки
Независимость от конкретных архитектур и языка программирования
AWS CodeDeploy использует модель установки на основе файлов и команд, что позволяет развертывать любые приложения, многократно используя существующий установочный код. CodeDeploy использует единый файл конфигурации AppSpec для выполнения действий, тестов и проверок в рамках каждого события жизненного цикла (этапа развертывания). В качестве команд может использоваться любой программный код, например скрипт оболочки, настраиваемая программа или даже утилита управления конфигурацией.
Интеграция цепочки инструментов
Использование API сервиса AWS CodeDeploy обеспечивает простую интеграцию развертывания приложений с существующей цепочкой инструментов для доставки ПО. AWS CodePipeline, AWS CodeStar и ряд партнеров AWS поддерживают встроенную интеграцию с CodeDeploy с сервисами непрерывной интеграции и непрерывной доставки, что упрощает автоматическое развертывание обновленных приложений.
Получение оповещений
Просмотр определенных событий
Можно создавать оповещения о событиях, затрагивающих ваши развертывания. Оповещения будут приходить в виде оповещений сервиса Amazon SNS. Каждое оповещение включает в себя сообщение о состоянии, а также ссылку на ресурсы, где возникло событие, ставшее причиной оповещения.
Подробнее о ценах на AWS CodeDeploy