В одной из статей опубликованных на хабре я в комментах вычитал, что на gitlab.com есть копии deepNude, чисто из любопытства нашел ее и сделал форк «на всякий случай». Через 3 часа после этого я не смог запушить код, т.к. улетел в бан…
После переписки с саппортом выяснилось что я нарушил правила их сервиса и что меня разлочили, но я должен удалить deepNude со своего акка в течение 24 часов.
Но войти я так и не смог, наверное из-за включенной двухфакторки и неправильного разлочивания:
Пока я ждал очередной ответ от саппорта, меня одолевала мысль «Хранить код на gitlab.com ненадежно, правила могут менятся, а у тебя вся работа завязана на них, ты даже не можешь сделать деплой в обход их registry и CI/CD».
Но дело в том что гитлаб удобный, и я реально не понимаю как можно в 2019 жить без их CI/CD. И других плюшек. Вобщем поднял отдельный сервер накатил туда docker / docker-compose / gitlab runner / Gitlab CE / registry не стал поднимать (заюзал Amazon ECR)
Все, теперь деплои не зависят от политик администрации сервиса. Я доволен и вдруг приходит письмо о том что меня на этот раз полностью разблокировали. Я удалил deepNude, и перенес все свои репозитории (а их более 50) одним кликом мыши на selfHosting версию Gitlab.
В итоге
Из плюсов:
- Сборки и деплои ускорились в два раза! с 6 минут до 3х (сборка / тестирование / деплой на прод)
- Появился полный контроль всевозможных процессов через админку Gitlab CE
- Нет зависимости от политик сервиса, тут ты сам себе хозяин
- По субъективным ощущениям Gitlab CE во всех аспектах работает значительно шустрее «облачной» версии
Из минусов:
- Надо делать бэкапы (я делаю встроенным механизмом бэкапирования у DigitalOcean)
- Надо периодически обновлять и следить за состоянием сервера / контейнеров
Вобщем клонируйте deepNude (если он еще там есть) и вынужденно переезжайте на свой gitlab)), не пожалеете. Наверное если бы не этот случай — мне в голову не пришло этим заниматься.
Если кому интересно могу выложить конфиги docker-compose для запуска своего Gitlab CE и примеры настройки CI/CD.
Всем хорошей рабочей недели!
UPD: Как правильно заметил в комментариях amarao:
Я бы не стал считать in-house бэкап-сервис хостера надёжным. Один взрыв в биллинге, и нет ни инстанса, ни бэкапа
Поэтому в добавок к бэкапу на DO я настроил нативный механизм бэкапирования в Gitlab CE, теперь по крону делается дамп базы и репозиториев на Amazon S3, с которого в случае чего можно легко восстановиться (но для эксперимента надо будет провести пробное восстановление, посмотрю что из этого выйдет).
Также можно воспользоваться Repository mirroring
Автор: Евгений