Рубрика:
Администрирование /
DevOps
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, автор более 1000 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС, yaremchuk@samag.ru
Разбираемся с Concourse CI
Системы непрерывной интеграции экономят кучу времени, но сами они тоже требуют изучения, что не всегда подходит для небольших проектов. Concourse CI очень выручает
Идея непрерывной интеграции (Continuous Integration), в общем, далеко уже не нова. Автоматическая сборка проектов после обновления кода – это уже фактически стандартная процедура, позволяющая с ходу посмотреть и протестировать разрабатываемый продукт, сразу увидеть (и показать остальным участникам) ошибки и в итоге быстро найти иустранить проблему. С появлением Docker они стали не менее актуальны и востребованы. Самих систем CI на сегодня можно насчитать уже десятки: Jenkins, Jetbrains TeamCity, Atlassian Bamboo, Bitbucket Pipelines и так далее. Проблема в том, что они достаточно сложны, большинство из них коммерческие и стоят определенную сумму (Bitbucket Pipelines бесплатен для небольших команд) и, главное, требуют специалиста и времени для настройки и постоянной подстройки, чего обычно не могут себе позволить в небольших проектах и тем более при индивидуальной разработке.
Concourse CI [1] позволяет легко реализовать непрерывную интеграцию, при этом сам он практически не требует времени на развертывание и изучение. Основная идея проекта – этопростота, и весь процесс можно освоить буквально за несколько часов. Научиться строить Docker-образы при изменении кода в Git можно буквально за пару часов. Затем этапроцедура будет выполняться автоматически, не требуя внимания. Конечно, возможности далеко не ограничены докером и git. Поддерживаются интеграция с AWS S3, отправка уведомлений по email и Hipchat, выполнение команд и многое другое.
Базируется Concourse CI на трех понятиях: задачи (tasks), ресурсы (resources) и задания (jobs). Задание описывает действия, которые будут запущены вручную или при изменении отслеживаемых ресурсов. Сами действия описываются в так называемом плане сборки. Это могут быть тесты, выполнение команд и/или сборка контейнера Docker. Под задачей понимается выполнение сценария в изолированной среде с указанными параметрами. В общем случае это любая команда, используемая при сборке контейнера. Задачи поумолчанию выполняются от имени непривилегированного пользователя, но, если нужно, можно дать необходимые права. Под ресурсом изначально подразумевается Git, хотя этоможет быть любой объект, состояние и версию которого можно отследить. Для выполнения нужного действия ресурсы и задания между собой связываются при помощи конвейера (pipelines). Все вместе эти компоненты позволяют смоделировать любую ситуацию, требуемую при сборке. Информация регистрируется, поэтому всегда можно посмотреть, кто чтоделал. Данные о pipelines и журналы работы сохраняются в PostgreSQL.
Для управления и ручного запуска заданий используется утилита Fly, для просмотра результатов и запуска заданий также используется веб-интерфейс.
Установка
Развернуть Concourse CI можно несколькими способами. Проект предоставляет бинарники для Linux, Mac OSX и Windows, готовые образы Docker и Vagrant. Последний вариант универсальный и позволяет поднять нужный сервис в считанные минуты, но, учитывая, что будут запущены две VM (одна для СУБД), потребует чуть больше ресурсов и нужен компьютер минимум с 8 ОЗУ. Поддерживается работа нескольких экземпляров в кластере, использующих одну базу.
Статью целиком читайте в журнале «Системный администратор», №3 за 2017 г. на страницах 29-33.
PDF-версию данного номера можно приобрести в нашем магазине.
- Сайт Concourse CI – http://concourse.ci.
- Ресурсы Concourse CI – https://concourse.ci/resource-types.html.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|