На Хабре и в нашем блоге о корпоративном IaaS мы много пишем об облачных технологиях, и рассматриваем интересные инфраструктурные проекты различных компаний. Сегодня поговорим о повышении производительности git-сервера и взглянем на историю и опыт проекта Clever Cloud.
/ фото Karl Baron CC
На старте проекта команда Clever Cloud воспользовалась gitolite — утилитой для управления репозиториями Git. Готовое функциональное решение с возможностью управления его конфигурацией позволяло описать каждого пользователя и каждый репозиторий.
Для автоматической актуализации данных настроек разработчики Clever Cloud даже самостоятельно создали инструмент под названием etilotig. В итоге и сам gitolite перестал удовлетворять всем запросам.
Причин было несколько: начиная с того, что все репозитории создавались в одной директории (серьезная проблема производительности) и до необходимости переписывания всего файла настроек для внесения даже незначительных изменений. Более того, создание нового репозитория могло занимать до 5 минут, что выходило за рамки пределов разумного времени.
В итоге было принято решение доработать свою утилиту etilotig. Она должна была управлять SSH-ключами, авторизацией, созданием репозиториев и установкой перехватчиков.
Когда etilotig управлял только конфигурацией, то он лишь перенаправлял SHH-ключи gitolite, который, в свою очередь, их обрабатывал. Теперь ему нужно было еще и самостоятельно обрабатывать файл authorized_keys. Каждый раз, когда добавлялся или удалялся SSH-ключ, утилита создавала новый файл с ключами и заменяла старый.
Для управления репозиториями etilotig записывал конфигурационные bash-файлы, тем самым определяя основные положения, например, директорию, в которой будет создан новый репозиторий. Далее в дело вступал небольшой bash-скрипт.
Управление авторизацией в etilotig реализовано довольно просто: при создании внутренней конфигурации генерируется скрипт на Perl, который сверяет SSH-ключ при каждой попытке подключения. Если ключ верный, то транзакция разрешается, иначе — запрещается.
Подобных подход к увеличению производительности снизил время обработки до менее чем секунды (было 3-5 минут), а размер etilotig уменьшился на 50%. В своем личном блоге команда Clever Cloud заявила о том, что средний прирост производительности составил 30000%.
P.S. А вот о чем еще мы пишем в нашем блоге:
/ фото Karl Baron CC
На старте проекта команда Clever Cloud воспользовалась gitolite — утилитой для управления репозиториями Git. Готовое функциональное решение с возможностью управления его конфигурацией позволяло описать каждого пользователя и каждый репозиторий.
Для автоматической актуализации данных настроек разработчики Clever Cloud даже самостоятельно создали инструмент под названием etilotig. В итоге и сам gitolite перестал удовлетворять всем запросам.
Причин было несколько: начиная с того, что все репозитории создавались в одной директории (серьезная проблема производительности) и до необходимости переписывания всего файла настроек для внесения даже незначительных изменений. Более того, создание нового репозитория могло занимать до 5 минут, что выходило за рамки пределов разумного времени.
В итоге было принято решение доработать свою утилиту etilotig. Она должна была управлять SSH-ключами, авторизацией, созданием репозиториев и установкой перехватчиков.
Как они это сделали
Когда etilotig управлял только конфигурацией, то он лишь перенаправлял SHH-ключи gitolite, который, в свою очередь, их обрабатывал. Теперь ему нужно было еще и самостоятельно обрабатывать файл authorized_keys. Каждый раз, когда добавлялся или удалялся SSH-ключ, утилита создавала новый файл с ключами и заменяла старый.
Для управления репозиториями etilotig записывал конфигурационные bash-файлы, тем самым определяя основные положения, например, директорию, в которой будет создан новый репозиторий. Далее в дело вступал небольшой bash-скрипт.
Управление авторизацией в etilotig реализовано довольно просто: при создании внутренней конфигурации генерируется скрипт на Perl, который сверяет SSH-ключ при каждой попытке подключения. Если ключ верный, то транзакция разрешается, иначе — запрещается.
Заключение
Подобных подход к увеличению производительности снизил время обработки до менее чем секунды (было 3-5 минут), а размер etilotig уменьшился на 50%. В своем личном блоге команда Clever Cloud заявила о том, что средний прирост производительности составил 30000%.
P.S. А вот о чем еще мы пишем в нашем блоге:
- Дайджест: Все о работе с IaaS и примеры практических кейсов клиентов ИТ-ГРАД
- VMware NSX: новый подход к обеспечению безопасности в области здравоохранения
- VMware Cloud Foundation: развертывание программного ЦОД и гибридного облака
- Сравнение четырех топ-решений для аварийного восстановления
- Технико-экономическое обоснование IaaS на примере кейса крупной компании
- Эволюция ERP-систем: отказ от on-premises-инсталляций в пользу облака
- ИТ-прогноз-2017: обзор ключевых технологий, которые ожидает значительный рост