Новости нашей инфраструктуры

Наша инфраструктура и сопутствующие проекты продолжают развиваться.

В строй окончательно введена и запущена в работу наша реализация release tracker - Anitya. Это подключенный к шине fedmsg сервис, собирающий информацию с нескольких популярных хостинговых платформ, (GitHub, GNOME, пока еще незакрытого Google Code, CPAN, GNU, и еще нескольких), и создающий заявки в Fedora Bugzilla. Введение такого сервиса позволит отказаться и от запускаемого по cron cnucnu и ряда других архитектурно устаревших сервисов. Интересно, что благодаря подключению к fedmsg можно мониторить ситуацию с пакетами не только в Fedora, но и в других дистрибутивах. Пока планируется подключение CentOS, и уже начато подключение к Debian, что, разумеется, еще больше усилит наше позитивное влияние на этот проект. Как вы помните, Debian давно подключился к fedmsg, хотя полного объединения инфраструктур пока не произведено.

Отвлекшись от новости, нужно отметить, что разработка современных сервисов, подобных Anitya и fedmsg, была бы трудозатратной без появления удобных API на хостинговых платформах. Например, GitHub API, SourceForge API, Hackage API. Без них пришлось бы как в 2000е по крону выкачивать html-странички по ftp, а затем парсить перлом их содержимое. Индустрия, под влиянием революции социальных сетей, сдвинулась в сторону распределенных и автоматизированных систем, состоящих из изолированных узлов, управляющих друг другом с помощью сообщений через Web API. То, что DevOps называют microservices.

Некоторые коллеги-аналитики замечают, что архитектура микросервисов очень хорошо соответствует идеям Unix-way, и всерьез противопоставляют архитектуру микросервисов архитектуре shared libraries. Конечно, в наше время идея shared libraries по ряду причин не выглядит столь привлекательно, как это было лет 20-30 назад, да и мы постепенно продвигаем идею платформы systemd/Linux, в которой ядро платформы будет сформировано из сильно связанных общей шиной, но работающих в независимых ячейках (например, в контейнерах) сервисов, обменивающихся сообщениями, но мы предостерегаем некоторых DevOps от чрезмерного увлечения идеями почти полностью статических приложений. Проблемы у shared libs в основном обусловлены отсутствием средств мониторинга изменений API. Изменение API зачастую фатально сказывается на работоспособности системы c shared libs, но хоть эта проблема и не очень видна в случае архитектуры, основанной на передаче сообщений, там она тоже есть. Это мы вам, как бывалые разработчики на языках с передачей сообщений между потоками, говорим.


Верьте нам, мы инженеры!


Возвращаясь к теме о Anitya. Нам очень жаль, что в сервисе пока никак не используется результаты работы наших соотечественников над проектом Upstream Tracker. Без проверки API решение не будет законченным. Ну т.е. оно не будет законченным и с проверкой API, но с ним оно более законченней. Мы периодически обсуждаем функциональность Upstream Tracker, но пока выглядит все так, что дальше обсуждения ничего не продвинулось. Плохо, конечно, но пока вот так.

Введен в строй еще один новый узел - Taskotron. Это современная замена старому AutoQA, который, по большому счету, ничего особо не умел, кроме тривиального статического анализа собранных RPM-пакетов. Теперь же, в рамках Taskotron будет возможность добавлять функциональные тесты уровня пользователя, и мы опять надеемся, что коммьюнити популярных дистрибутивов, как и в случае с fedmsg, тоже будут им пользоваться.


Презентация Taskotron на прошедшем Flock 2014 (слайды презентации)


Перед тем, чтобы что-то тестировать, его надо бы собрать в пакет. Для этого мы используем утилиту mock. Работала она не очень шустро, с помощью chroot, и порой создавала интересные ситуации, когда запускалось в параллель сразу несколько сборок одного и того же пакета. Недавно наш коллега, участник GSoC 2014, Michael Šimáček добавил поддержку LVM (напомним, в LVM есть возможности создавать снапшоты, и "форкаться" от них, что теоретически может ускорить создание rootfs для сборки, т.к. у них будет значительная общая часть), а Miroslav Suchý добавил поддержку контейнеров systemd-nspawn вместо chroot. Пришлось изменить внутренний API, поэтому была выпущена новая тестовая версия mock. В стабильные версии Fedora (включая уже и 21ю), она, к сожалению не попадет, но будет доступна в Copr-репозитории.

Ну и напоследок новость об инфраструктуре GNOME. Они переехали на FreeIPA. Готов к десктопу продакшену!