[devel] Итоги полугодия эксплуатации кластера автоматизации пакетов.

Igor Vlasenko vlasenko на imath.kiev.ua
Пт Апр 18 23:22:58 MSK 2014


Господа, пользуюсь этим днем, 
чтобы подвести итоги за полугодие.

Как вы знаете, пол года назад вступил в строй кластер автоматизации пакетов. 
Чтобы дожать эту работу, пришлось год концентрировать ресурсы, оголив
другие направления. В реультате пружина выстрелила IRL, 
и где-то с середины октября по февраль 
пришлось решать возникшие IRL проблемы.
Был жутий перегруз и нехватка времени, прошу прощения у всех, кому
вовремя не отвечал или затянул с реакцией.
В сложившихся условиях пришлось прекратить разработку --- 
оставшегося времени хватало лишь на сопровождение.

С позитивной стороны, это полугодие оказалось 
стресс-тестом кластера автоматизации. 

По итогам оказалось, что самый большой и самый автоматизированный 
репозиторий пакетов perl (разбитый на несколько компонент - 
Сизиф-колхоз, autoimports/cpanbuilder, autoimports/*import),
состоящий из более чем 20.000 пакетов, в среднем с 500-1000
обновлений ежемесячно, оказался и самым легким в сопровождении.

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

В итоге нагрузка от автоматизированного сопровождения пакетов
20000 пакетов субъективно сравнима с такой же от 200 при ручном сопровождении.
По опыту могу заявить, что чисто на perl достаточно пары часов в
неделю (хотя я на perl тратил несколько больше из-за разработки и желания
обновлять репозиторий более часто). 
А это уже делает такие нагрузки Community friendly.

Получается, чем собирать репозиторий в 100-200 пакетов ruby, R, чего еще,
выгоднее вложится в автоматизацию и потом за то же или меньшее время
собирать/обновлять пакеты тысячами и десятками тысяч.

Репозитории *import fcimport/mgaimport/... идут вторыми. Не смотря на
то, что они на порядки меньше, возни на них уходило гораздо больше.
Помочь прогрессу там должны будут скрипты генерации distromap.

Я за март - апрель расшил узкие места в perl-package-builder и 
в библиотеке массовых преобразований, c прицелом на будущие работы в *import.

Среди *import особняком стоит jppimport и java репозиторий.
Кто читал Нассима Талеба "Антихрупкость", то скажу, что имеющийся
java репозиторий --- хрупкий. В свое время я не осилил сборку нового
eclipse, и тут же образовалась пробка. Сейчас этот репозиторий надо
(частично) ломать и собирать заново. Такая хрупкость является
следствием идеологии JPackage и примкнувших, которая заслуживает
уважения, но из-за специфики сборочных инструментов и идеологии
коллективного апстрима сборка java превращается в процесс 
выкладывания против ветра. 

Eсть планы, как снизить остроту проблемы, написав по аналогии с
perl-package-builder что-то вроде maven-artifact-builder
и в сборочном процессе не пытаясь идти против ветра,
а уступая апстриму.

В общем, I am back.


-- 

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



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