Возможности AWS CodePipeline

Почему именно CodePipeline?

AWS CodePipeline – это сервис непрерывной интеграции и непрерывной доставки (CI/CD) для быстрого и надежного обновления приложений и инфраструктуры. CodePipeline можно использовать для осуществления комплексного моделирования и автоматизации процесса выпуска своего программного обеспечения.

Общие вопросы

Конвейер определяет ход выполнения процесса выпуска и описывает, как новые изменения в коде проходят различные этапы данной процедуры. Конвейер содержит ряд этапов (например, создание, тестирование и развертывание), которые выступают в роли логических разделов рабочего процесса. Каждый этап состоит из последовательности действий, которые представляют собой задания (такие как сборка кода или развертывание в тестовой среде). CodePipeline предоставляет графический интерфейс пользователя для создания и настройки конвейера (в том числе отдельных этапов и действий), а также для управления конвейером и его составляющими. Интерфейс также позволяет визуализировать и моделировать процесс выпуска.

Параллельное выполнение

CodePipeline можно использовать для моделирования процесса сборки, тестирования и развертывания, выполняя их параллельно для повышения скорости рабочего процесса.

Сервис CodePipeline может брать исходный код для вашего конвейера непосредственно из AWS CodeCommit, GitHub, Эластичного реестра контейнеров Amazon (Amazon ECR) или Amazon Simple Storage Service (Amazon S3). Он предоставляет возможность запускать тестирование сборок и модулей в AWS CodeBuild. CodePipeline может развертывать изменения с помощью AWS CodeDeploy, AWS Elastic Beanstalk, Amazon Elastic Container Service (Amazon ECS) или AWS Fargate.

Можно создать модель действий AWS CloudFormation, чтобы выделять, обновлять или удалять ресурсы AWS в процессе выпуска ПО. Кроме того, у вас есть возможность осуществлять непрерывную доставку бессерверных приложений, созданных с помощью AWS Lambda, API шлюза Amazon и Amazon DynamoDB с использованием Модели бессерверных приложений AWS (AWS SAM).

Помимо прочего, можно запускать собственные функции, которые задаются в коде. Это доступно на любом этапе конвейера благодаря интеграции CodePipeline с Lambda. Например, можно запустить функцию Lambda, которая проверяет, успешно ли было развернуто интернет‑приложение.

CodePipeline дает возможность настроить конвейер, который обеспечит взаимодействие этих сервисов как между собой, так и со сторонними инструментами разработчика и собственными системами.

CodePipeline позволяет внедрить сторонние инструменты разработчика, такие как GitHub и Jenkins, в любой этап процесса выпуска. Это делается буквально одним щелчком мыши. Сторонние инструменты можно использовать для управления исходным кодом, сборки, тестирования или развертывания. Дополнительные сведения о возможностях интеграций см. здесь.

CodePipeline позволяет осуществить интеграцию с собственными настраиваемыми системами. Можно зарегистрировать определенное действие, которое позволит включить ваши серверы в конвейер путем интеграции агента CodePipeline, имеющего открытый исходный код, с вашими серверами. Кроме того, можно использовать подключаемый модуль CodePipeline Jenkins для простой регистрации ваших существующих серверов сборки приложений в качестве настраиваемого действия.

CodePipeline позволяет задать свою структуру конвейера с помощью декларативного документа JSON, который определяет рабочий процесс выпуска, а также его этапы и действия. Эти документы позволяют обновить существующие конвейеры, а также предоставить начальные шаблоны для создания новых конвейеров.

CodePipeline использует Управление идентификацией и доступом AWS (IAM) для контроля за тем, кто может вносить изменения в рабочий процесс выпуска, а также контролировать его. Можно предоставить пользовательский доступ с помощью пользователей IAM, ролей IAM, а также SAML-интегрированных каталогов.

Можно создать оповещения для событий, влияющих на ваши конвейеры. Сообщения будут поступать в форме уведомлений Amazon Simple Notification Service (Amazon SNS). Каждое оповещение включает в себя сообщение о состоянии и ссылку на ресурсы, где возникло событие, ставшее причиной оповещения.