CI/CD в Sourcecraft
CI/CD в SourceCraft
Я стараюсь не писать технические посты, хотя и моё образование, и опыт позволяют это делать. Мне кажется, что они не будут интересны большей части аудитории. Решил провести эксперимент - вдруг я ошибаюсь…
Один из соучредителей в нашем с Arturs Zantmans проекте настоял на том, чтобы мы включили наш софт в реестр отечественного ПО. В принципе, операционки, СУБД и технологический стек не подпадают под ограничения - так что тут проблем нет. Единственная загвоздка – GitHub. Его использование – это красный флаг для попадания в реестр. Надо было срочно с GitHub куда-то мигрировать.
Конечно, можно было бы заморочиться: развернуть и настроить под себя GitLab, но ни времени, ни сил на это не было, поэтому без особого research было принято решение мигрировать в недавно появившийся SourceCraft от Яндекса. Основным аргументом в пользу этого решения было то, что вся наша инфраструктура сейчас базируется в Яндекс.Облаке – не надо тратить время на заключение договоров, регистрацию, создание платёжных аккаунтов и т.п.
После GitHub для нас критичным было наличие CI/CD. В SourceCraft он есть, но немного в ограниченном виде – отсутствуют self-hosted воркеры. Их обещают выпустить 5-го июня, когда SourceCraft перейдёт в Public Preview. Но пока что все workers работают в облаке.
Мы для себя реализовали следующий алгоритм:
- С помощью облачных workers собираем необходимые docker-образы;
- Сохраняем их в Yandex Container Registry.
- Далее есть вариант развернуть эти образы в Serverless Containers, но поскольку у нас уже есть арендованные и настроенные в Яндексе серверы, то пока что надо разворачивать образы на них, а не в Serverless Containers;
- Для серверов были написаны скрипты, которые по cron’у периодически проверяют Container Registry на наличие новых образов, и в случае обнаружения оных делают pull и разворачивают их на серверах.
Понятно, что это костыли, но посмотрим, какое обновление 5-го июня выкатят ребята из Яндекса. И дальше будем думать: либо в сторону Serverless Containers идти, либо использовать self-hosted workers на серверах.
Поскольку у нас не было времени на полноценный research, хотел бы задать пару вопросов аудитории: кто чем пользуется из готовых решений, а также какие плюсы/минусы есть у решений различных неподсанкционных компаний – Сбера, например, или VK и иже с ними?