Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Непрерывная интеграция

Глава 9 из книги "Архитектура приложений с открытым исходным кодом", том 1.

Оригинал: Continuous Integration
Автор: C. Titus Brown, Rosangela Canino-Koning
Дата публикации: 7 Июля 2012 г.
Перевод: А.Панин
Дата перевода: 23 Апреля 2013 г.

Системы непрерывной интеграции (Continuous Integration (CI) systems) предназначены для автоматической и регулярной сборки и тестирования программных продуктов. Хотя их основным преимуществом и является возможность устранения длительных периодов времени между сборкой и тестовыми запусками, данные системы также упрощают и автоматизируют выполнение других утомительных задач. Эти задачи включают в себя кроссплатформенное тестирование, регулярное выполнение медленных операций по перемещению больших объемов данных или сложно настраиваемых тестов, проверку достижения необходимой производительности при использовании устаревших платформ, выявление тестов, которые периодически заканчиваются неудачами и регулярное создание пакетов для актуальных версий программных продуктов. Так как автоматизация процессов сборки и тестирования необходима для реализации процесса непрерывной интеграции, данный процесс обычно оказывается первым шагом к реализации фреймворка непрерывного развертывания, в котором обновления программного обеспечения могут производиться в процессе работы систем незамедлительно после тестирования.

Непрерывная интеграция является актуальной темой не только из-за ее значительной роли в гибкой методологии разработки (Agile software methodology). В течение прошедших лет было представлено множество инструментов непрерывной интеграции с открытым исходным кодом, разработанных с использованием и предназначенных для работы с различными языками программирования, реализующих большой диапазон возможностей в контексте набора различных архитектурных моделей. Целью данной главы является описание стандартных наборов возможностей, реализуемых системами непрерывной интеграции, обсуждение доступных архитектурных моделей и установление того, какие возможности можно или нельзя реализовать без лишних сложностей в рамках выбранной архитектуры.

Ниже мы кратко опишем ряд систем, иллюстрирующих различные доступные при проектировании систем непрерывной интеграции архитектурные решения. Первая система, Buildbot использует модель ведущих/ведомых серверов; вторая, Cdash использует модель сервера обработки отчетов; третья, Jenkins, использует гибридную модель; и четвертая, Pony-Build, использует децентрализованный сервер обработки отчетов, разработанный с использованием языка Python, который мы будем использовать в качестве примера в обсуждении.


Продолжение статьи: 9.1. Многообразие систем непрерывной интеграции.