![](https://habrastorage.org/files/0e9/b26/253/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, которая благодаря этой ценности во время инцидента со случайным удалением базы данных сумела превратить поражение в победу, а на этот раз, в вопросе ухода из облака, извлекла пользу из своей слабости — недостатка компетенции. Благодаря широкому общественному обсуждению компания, с одной стороны, смогла в избытке получить квалифицированную помощь сообщества и принять более правильное решение, а с другой — поделиться опытом с людьми, которые могут оказаться перед похожим выбором или просто заинтересуются этими вопросами. Всегда любопытно посмотреть, как важные задачи решаются в других организациях, как они мыслят и какие инструменты используют для облегчения своей работы.
Ссылки:
- Issue #727 в багтрекере GitLab.com, где была изначально озвучена проблема: https://gitlab.com/gitlab-com/infrastructure/issues/727.
- GitLab Infrastructure Update, где обсуждаются вопросы производительности (есть ссылка на занятное видео рабочего созвона): https://about.gitlab.com/2016/09/26/infrastructure-update/.
- Статья об уходе из облака: How We Knew It Was Time to Leave the Cloud и ее перевод: Gitlab: как мы поняли, что пора уходить из облака.
- Статья о планируемом к покупке серверном оборудовании: Proposed server purchase for GitLab.com.
- Электронная табличка с расчетами по оборудованию и хостингу: https://docs.google.com/spreadsheets/d/1XG9VXdDxNd8ipgPlEr7Nb7Eg22twXPuzgDwsOhtdYKQ/edit#gid=894825456.
- Обсуждение предложения о покупке оборудования на Hacker news: https://news.ycombinator.com/item?id=13153031.
- Пост в issue #727, объясняющий, почему компания передумала уходить из облака: https://gitlab.com/gitlab-com/infrastructure/issues/727#note_20044060.
- Статья в блоге Гитлаб, где в вопросе перехода на свое железо ставится точка и приводятся показавшиеся наиболее полезными сотрудникам GitLab комментарии пользователей: https://about.gitlab.com/2017/03/02/why-we-are-not-leaving-the-cloud/.
Комментарии (12)
varnav
04.04.2017 11:02+1быть мастером на все руки с каждым годом все сложнее.
По вакансиям, которые по прежнему похожи на анекдот про «если бы водителей нанимали как программистов» так не скажешь.
mvasilyev
04.04.2017 16:45stackoverflow живут на своем оборудовании и вроде ничего
mayorovp
04.04.2017 17:02-1Так там ASP.NET — а для него, насколько я знаю, облаков общего назначения нет. Только Azure — но ажурное приложение нельзя запустить на своем железе, и наоборот — обычное приложение нельзя перенести в облако.
navion
06.04.2017 11:17У SO данных намного меньше, а тут собрались делать петабайтное хранилище на Ceph.
stat1c_void
04.04.2017 18:38+2во время инцидента со случайным удалением базы данных сумела превратить поражение в победу
Я бы не сказал. Победы точно не было, а получилась «ничья» только потому, что повезло. А могло и не повезти… Удивительно, как ту ситуацию многие считают чем-то хорошим. Да, открытость это отлично, но лучше бы они за бэкапами следили.navion
05.04.2017 09:47Мне кажется эта история внесла существенный вклад в отказ от переезда — раз гитлабовцы не потянули настройку бекапа, то с остальным будет ещё хуже.
potorof
05.04.2017 01:04Свое всегда выгоднее. А то, что мол не спецы, так это минус в сторону менеджмента — трудно таковых нанять? Хотя последний случай с удалением базы говорит явно не в их пользу как самостоятельных инженеров.
ivanrave
05.04.2017 09:41Однако пользователи справедливо указали на то, что основная компетенция GitLab — это разработка ПО...
Похоже, эти пользователи из Azure
Dreyk
Да уж, куда им на bare metal, им придется еще кучку спецов набрать для обслуживания
varnav
На 190 тыс. долларов в месяц можно нанять 20 человек.
Dreyk
ну только их надо нанять до переезда =)
varnav
Ну, пусть возьмут кредит, хех.