В этой статье я расскажу вам, как наша команда - "жыбий рыр" участвовала в хакатоне от DDOS-GUARD
Рассмотрим, какой кейс мы выбрали, покажу, к какой реализации пришли и покажу наше решение, а в конце подведем итоги
Описание кейса
DevOps - Amazing Automata
Данный кейс состоял в автоматизации сборки и деплоя разных приложений - надо было создать некий сервис, который будет анализировать проект, собирать его и деплоить на сервер
Главная задача заключалась в том, чтобы можно было загрузить любой проект, на любом языке и получить готовую сборку на сервере

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

В ходе разговоров мы пришли к следующим заключениям:
Проекты будем сканировать через репозитории на (GitHub/GitLab)
Ограничили пул языков до (python, go, php)
Сервисом выбрали консольную утилиту на Go
Чтобы не быть привязанными к платформе для билда и деплоя выбрали Ansible
Реализация кейса
Далее мы рассмотрим по шагам, какие действия мы выполняли
Распределили обязанности на команду
Иван (YAML Воин) - писал плейбуки для деплоя и билда приложений
Михаил (Капитан/Scrum мастер) - раздавал всем задачи и валидировал решения
Я (PHP гребец) - писал на Go консольную утилиту
Приступили к реализации
После распределения обязанностей мы приступили к решению кейса
За сутки мы смогли написать утилиту Ivan

Данная утилита на вход принимала репозиторий, после чего сканирует репозиторий и определяет - язык, есть ли точки входа в приложения main файлы, есть ли пакетные менеджеры, есть ли docker/docker-compose файлы и определяет фреймворк
После анализа - мы передаем ansible аргументы полученные через утилиту и запускаем плейбук с заготовленными параметрами
Презентовали проект перед защитой
До защиты презентаций, эксперты проверяют решения, поэтому мы просирая дедлайны еле как закончили доделывать нашу утилиту и показали наше решение
Не знаю, как у других команд, но у нас по канонам разработки всегда получается заканчивать работу только в последние часы сдачи проектов и также с презентациями...
Выступили с презентацией

Самая важная и ответственная часть - это выступить с презентацией, так как все мы разработчики не очень любим выступать на публику и в нашей команде эту головную боль снимает капитан, который сам делает презентацию и выступает с ней
Дальше покажу несколько слайдов из нашей презентации:



Итог
По стечению обстоятельств смогли занять первое место в этом кейсе, попробовали для себя новый инструмент - Ansible и получили бесценный опыт участия на хакатонах

Благодарим компанию DDOS-GUARD, уже участвуем от них на втором хакатоне и довольны кейсами и самой организацией
Наша команда - https://жыбийрыр.рф
Благодарю вас за то, что прочитали данную статью
profatsky
Спасибо за статью!
Почему утилита называется Ivan?
deniskorbakov9 Автор
У нас уже есть утилита с названием Миша: https://github.com/misha-ssh/cli
Для полноты картины решили назвать Иваном, в честь нашего YAML война
profatsky
Ждем утилиты Denis и Alexander, названные в честь оставшихся участников команды, представленных на сайте жыбийрыр.рф