[devel] Введение в облачный кластер автоматизации.

Igor Vlasenko vlasenko на imath.kiev.ua
Ср Июл 24 00:58:17 MSK 2013


Уважаемые коллеги!

Публичная страница текущего состояния облачного кластера автоматизации ALT Linux Team находится на странице  http://watch.altlinux.org/pub/monitor/index.htm, в частности, там же можно посмотреть репозитории, которые сопровождаются нодами кластера, результаты работы repocop, результаты работы сервиса watch и других сервисов, выполняющихся в автоматическом режиме.

Что такое облачный кластер автоматизации ALT Linux Team?

Это  совокупность нескольких вычислительных систем, работающих совместно для выполнения общей задачи автоматизированного либо полностью автоматического создания программных пакетов для бинарных платформ репозиториев ALT Linux, часть из которых идет в общие репозитории (например, пакеты, создаваемые cronbuild и cronport), а часть размещается в отдельных репозиториях-оверлеях, например, репозитории autoports и autoimports для платформ t6, p7 и Sisyphus.

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

Зачем нужен кластер автоматизации.

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

Устройство кластера.

Элементарной вычислительной системой кластера является автономная нода. На одной виртуальной машине может быть одна или несколько автономных нод.  На виртуальной машине устанавливается программное обеспечение autorepo, представляющее собой контейнер автономных нод. В задачи программного обеспечения autorepo, кроме создания окружения для работы автономных нод и мониторинга виртуальной машины, входит предоставление сетевого доступа на чтение по протоколам http, ftp и rsync к результатам работы автономных нод, которые экспортируются в подкаталоги каталога /var/ftp.

Каждая автономная нода разворачивается под своим отдельным псевдопользователем. Режим работы автономной ноды циклический.
Мастер-процесс автономной ноды периодически вызывается через cron, выполняет полезную работу и завершается. Для сборочных нод мастер-процесс обычно вызывается раз в день, но в зависимости от ноды этот период может быть и другим.
В типичной конфигурации виртуальной машины 2 ноды  одна сборочная, для сопровождения локального репозитория, вторая  нода repocop для внешнего тестирования и исправления полученного репозитория. Кроме сборочных нод и нод  repocop внешнего тестирования в состав кластера могут входить и другие служебные ноды, такие как ноды администрирования и мониторинга кластера, ноды watch оповещений о наличии обновлений, ноды cronbuild, агрегирующие ноды, наподобие autoimports, которые сливают несколько репозиториев под данную платформу в один большой.

Продукция и пользователи кластера.

Окончательной продукцией кластера являются пакеты под дистрибутивы ALT Linux, потребителями которых являются пользователи дистрибутивов. Пользователями же собственно кластера являются майнтайнеры подсистем, по отношению к которым кластер выступает в роли "on-demand software" (SaaS).
Именно, когда возникает нужда в опакечивании некоторой подсистемы, к примеру, модулей node.js, либо в автоматизации опакечивания имеющейся подсистемы, в кластере автоматизации для этой подсистемы создается новая сборочная нода, и при необходимости, нода внешнего тестирования, на которой разворачивается программное обеспечение автосборки, настроенное под данную подсистему. Результаты работы ноды будут затем включены в общий либо агрегирующий репозиторий.

Принципы работы программного обеспечения сборочных нод.

Сборочные ноды являются основными нодами кластера.
Выполняемый в цикле процесс работы сборочной ноды состоит из следующих этапов:

* сравнение репозиториев
* генерация пакетов
* сборка пакетов
* публикация пакетов в репозиторий.

Покажем принципы работы сборочной ноды на примере ноды импорта пакетов perl CPANimport.
Нода скачивает список репозитория CPAN.org исходных текстов модулей языка программирования perl и сравнивает этот список со списком пакетов perl, имеющихся в репозитории целевой платформы (например, ALT Linux Sisyphus). На этом шаге в репозитории целевой платформы выявляются пакеты, которые нуждаются в обновлении, а также модули из  репозитория CPAN, для которых нет пакета в репозитории целевой платформы.
На втором шаге для выявленных модулей генерируются пакеты, на третьем шаге производится их сборка. Полученные пакеты публикуются в собственном репозитории ноды cpanimport. Агрегирующая нода autoimports соединяет пакеты из собственного репозитория ноды cpanimport с пакетами репозиториев других нод в один большой репозиторий autoimports.
Полученный цикл повторяется, как следствие, репозиторий модулей perl автоматически поддерживается в актуальном состоянии.

-- 

Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Подробная информация о списке рассылки Devel