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


В конце 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/.
Поделиться с друзьями
-->

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


  1. Dreyk
    04.04.2017 10:51

    Да уж, куда им на bare metal, им придется еще кучку спецов набрать для обслуживания


    1. varnav
      04.04.2017 11:04

      На 190 тыс. долларов в месяц можно нанять 20 человек.


      1. Dreyk
        04.04.2017 11:05

        ну только их надо нанять до переезда =)


        1. varnav
          04.04.2017 11:06

          Ну, пусть возьмут кредит, хех.


  1. varnav
    04.04.2017 11:02
    +1

    быть мастером на все руки с каждым годом все сложнее.

    По вакансиям, которые по прежнему похожи на анекдот про «если бы водителей нанимали как программистов» так не скажешь.


  1. mvasilyev
    04.04.2017 16:45

    stackoverflow живут на своем оборудовании и вроде ничего


    1. mayorovp
      04.04.2017 17:02
      -1

      Так там ASP.NET — а для него, насколько я знаю, облаков общего назначения нет. Только Azure — но ажурное приложение нельзя запустить на своем железе, и наоборот — обычное приложение нельзя перенести в облако.


    1. navion
      06.04.2017 11:17

      У SO данных намного меньше, а тут собрались делать петабайтное хранилище на Ceph.


  1. stat1c_void
    04.04.2017 18:38
    +2

    во время инцидента со случайным удалением базы данных сумела превратить поражение в победу

    Я бы не сказал. Победы точно не было, а получилась «ничья» только потому, что повезло. А могло и не повезти… Удивительно, как ту ситуацию многие считают чем-то хорошим. Да, открытость это отлично, но лучше бы они за бэкапами следили.


    1. navion
      05.04.2017 09:47

      Мне кажется эта история внесла существенный вклад в отказ от переезда — раз гитлабовцы не потянули настройку бекапа, то с остальным будет ещё хуже.


  1. potorof
    05.04.2017 01:04

    Свое всегда выгоднее. А то, что мол не спецы, так это минус в сторону менеджмента — трудно таковых нанять? Хотя последний случай с удалением базы говорит явно не в их пользу как самостоятельных инженеров.


  1. ivanrave
    05.04.2017 09:41

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

    Похоже, эти пользователи из Azure