Erlang и systemd
Опубликовано 13.7.2014 17:50 пользователем Peter Lemenkov
Мы продолжаем работу по systemd-изации Erlang в рамках проекта по улучшению состояния с этим языком в Fedora 21. На текущий момент мы уже включили поддержку socket activation в epmd, которую добавил Matwey V. Kornilov, а также добавили поддержку system notification, что повышает надежность старта приложений, требующих запущенного epmd.
Благодаря новой библиотеке erlang-sd_notify, для поддержки system notification, инженеру Red Hat, John Eckersberg, удалось изменить типа systemd-сервиса для RabbitMQ на Notify (пользователи Red Hat OpenStack 5.0 смогут воспользоваться результатами нашей работы), что резко повысит надежность запуска RabbitMQ в облаках. До сих пор SysV init-скрипт RabbitMQ содержал большое количество хаков, и все равно часто ничего не работало. Такова ненадежность и хрупкость портянок на Bash, из которых состоят SysV-скрипты. И это, между прочим, ПО уровня Enterprise, на котором работают миллионные и миллиардные сервисы, так что понятно, что творится в других случаях.
Помимо этого, разработчик Litecoin и Bitcoin, основатель Fedora Community, Warren Togami, взялся за CouchDB. Он использует его в своем бизнесе, и также был заинтересован, чтоб он работал с большей степенью использования API systemd. CouchDB теперь тоже использует systemd, и мы, как обычно, предложили наши изменения в upstream, на включение. Так, потихоньку, поддержка systemd будет реализована везде.
К сожалению, в Fedora пока еще недоступна поддержка Journald в Erlang, которую более полугода назад разработали в Travelping, но мы работаем над этим. Также неисправленными остались политики SELinux для Erlang-приложений - Warren Togami вместе с Dan Walsh работает над этой задачей.
И напоследок забавная и одновременно печальная новость. К сожалению мы с нашими systemd-изменениями попали в не очень удачное время для CouchDB. И дело не только в двух огромных изменениях, падающих в git-репозиторий CouchDB прямо сейчас - переход с тестового фреймворка etap на тестовый фреймворк eunit и слияние с проектом BigCouch, а в двух огромных бомбах политкорректности.
Во-1 по коммьюнити ударилоDDoS-ом обсуждением замены master/slave терминологии на нерасистскую. Это популярная сейчас тема - если заменить устоявшиеся выражения на политкорректные, то получишь +10 к твоей харизме в геймифицированном реаллайфе. Больше никаких плюсов не будет, лишь бессмысленное отвлечение сил разработчиков на обсуждение политкорректного новояза. И во-2, выяснилось, что в примерах используются образы из рекламной кампании Барака Обамы или его противника. Нам трудно сказать чьим маскотом был Joe The Plumber, т.к. политики в США со стороны выглядят очень похожими - войны ведут, как республиканцы, так и демократы, так что мы не очень разбираемся, кто там и за кого в этом луна-парке.
К чести коммьюнити, оба обсуждения истратили не столько уж и много энергии участников, изаняв место в пятницу, чтоб в субботу пораньше освободиться исправив и закончив оба обсуждения быстрее, чем в аналогичных случаях делали в других коммьюнити, разработчики продолжили программирование.
Благодаря новой библиотеке erlang-sd_notify, для поддержки system notification, инженеру Red Hat, John Eckersberg, удалось изменить типа systemd-сервиса для RabbitMQ на Notify (пользователи Red Hat OpenStack 5.0 смогут воспользоваться результатами нашей работы), что резко повысит надежность запуска RabbitMQ в облаках. До сих пор SysV init-скрипт RabbitMQ содержал большое количество хаков, и все равно часто ничего не работало. Такова ненадежность и хрупкость портянок на Bash, из которых состоят SysV-скрипты. И это, между прочим, ПО уровня Enterprise, на котором работают миллионные и миллиардные сервисы, так что понятно, что творится в других случаях.
Помимо этого, разработчик Litecoin и Bitcoin, основатель Fedora Community, Warren Togami, взялся за CouchDB. Он использует его в своем бизнесе, и также был заинтересован, чтоб он работал с большей степенью использования API systemd. CouchDB теперь тоже использует systemd, и мы, как обычно, предложили наши изменения в upstream, на включение. Так, потихоньку, поддержка systemd будет реализована везде.
К сожалению, в Fedora пока еще недоступна поддержка Journald в Erlang, которую более полугода назад разработали в Travelping, но мы работаем над этим. Также неисправленными остались политики SELinux для Erlang-приложений - Warren Togami вместе с Dan Walsh работает над этой задачей.
И напоследок забавная и одновременно печальная новость. К сожалению мы с нашими systemd-изменениями попали в не очень удачное время для CouchDB. И дело не только в двух огромных изменениях, падающих в git-репозиторий CouchDB прямо сейчас - переход с тестового фреймворка etap на тестовый фреймворк eunit и слияние с проектом BigCouch, а в двух огромных бомбах политкорректности.
Во-1 по коммьюнити ударило
К чести коммьюнити, оба обсуждения истратили не столько уж и много энергии участников, и