[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