Пользователи убедили GitLab не уходить из облака

0e9b262531b043608769bb9c1f537915.jpg

Источник изображения


В конце 2016 компания Gitlab сообщила, что собирается уходить из облака (мы делали перевод этой статьи на Medium). Также был представлен весьма подробный план по покупке аппаратного обеспечения. Пользователи с интересом следили за развитием событий, активно комментировали опубликованные статьи и в итоге убедили GitLab отказаться от этой идеи.


У этой истории есть дополнительная интрига. Компания GitLab, которая сама по сути является поставщиком облачных услуг (правда, предоставляя пользователям приложение, а не вычислительные ресурсы), вдруг решила, что ей как потребителю подобная схема работы больше не подходит, но все же в итоге передумала.


Специалисты GitLab всерьез задумались об уходе из облака в ноябре 2015 года, когда была создана задача #727 по переходу на собственное железо.


Основной минус компания видела в недостаточной для GitLab пропускной способности дисковой подсистемы в Azure, а также в необходимости делить облачную инфраструктуру с другими пользователями. Эту проблему планировалось решить переходом на собственное серверное оборудование, что также должно было дать существенную экономию средств.


Описывая финансовую сторону вопроса, компания сообщила, что хостинг GitLab.com в Azure (не включая GitLab CI) на тот момент обходился примерно в $200k в месяц. При этом покупка собственного оборудования приравнивалась по стоимости к трем месяцам облачного хостинга. Колокейшн своих серверов был оценен в $10k в месяц. То есть за два с половиной года была бы достигнута десятикратная экономия. Детальное описание расходов можно найти вот в этой общедоступной электронной таблице.


Однако пользователи справедливо указали на то, что основная компетенция GitLab — это разработка ПО, и компания сильно недооценивает уровень и количество специалистов, а также затраты, необходимые для самостоятельного обслуживания инфраструктуры такого масштаба, особенно в случае возникновения нештатных ситуаций.


Также были подробно разобраны предложения компании по конкретным компонентам серверного оборудования, которое было запланировано к приобретению. В результате критике подверглось многое: архитектура, количество серверов, жесткие диски и т. д., а также было отмечено наличие множества пробелов и нераскрытых тем.


Что касается производительности, общий вывод оказался следующим: дополнительные расходы на виртуализацию не превышают 3%, поэтому уход из облака вряд ли решит проблемы нехватки пропускной способности системы ввода-вывода. К тому же нехватка пропускной способности в большей степени могла быть связана с недостаточной эффективностью NFS, CephFS и в особенности системы контроля версий git, которая не оптимизирована для параллельной работы большого количества пользователей. В итоге было решено отказаться от CephFS и разработать решение по оптимизации доступа к git-репозиториями, которое получило название Gitaly.


Что ж, в этом раунде борьбы «облако vs собственный компьютер» снова победили белые и пушистые. Процесс усложнения инфраструктуры и сужения областей специализации в сфере ИТ продолжается — быть мастером на все руки с каждым годом все сложнее.


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


Ссылки:


  1. Issue #727 в багтрекере GitLab.com, где была изначально озвучена проблема: https://gitlab.com/gitlab-com/infrastructure/issues/727.
  2. GitLab Infrastructure Update, где обсуждаются вопросы производительности (есть ссылка на занятное видео рабочего созвона): https://about.gitlab.com/2016/09/26/infrastructure-update/.
  3. Статья об уходе из облака: How We Knew It Was Time to Leave the Cloud и ее перевод: Gitlab: как мы поняли, что пора уходить из облака.
  4. Статья о планируемом к покупке серверном оборудовании: Proposed server purchase for GitLab.com.
  5. Электронная табличка с расчетами по оборудованию и хостингу: https://docs.google.com/spreadsheets/d/1XG9VXdDxNd8ipgPlEr7Nb7Eg22twXPuzgDwsOhtdYKQ/edit#gid=894825456.
  6. Обсуждение предложения о покупке оборудования на Hacker news: https://news.ycombinator.com/item? id=13153031.
  7. Пост в issue #727, объясняющий, почему компания передумала уходить из облака: https://gitlab.com/gitlab-com/infrastructure/issues/727#note_20044060.
  8. Статья в блоге Гитлаб, где в вопросе перехода на свое железо ставится точка и приводятся показавшиеся наиболее полезными сотрудникам GitLab комментарии пользователей: https://about.gitlab.com/2017/03/02/why-we-are-not-leaving-the-cloud/.

Комментарии (0)

© Habrahabr.ru