В этой статье я расскажу вам, как наша команда - "жыбий рыр" участвовала в хакатоне от DDOS-GUARD

Рассмотрим, какой кейс мы выбрали, покажу, к какой реализации пришли и покажу наше решение, а в конце подведем итоги

Описание кейса

DevOps - Amazing Automata

Данный кейс состоял в автоматизации сборки и деплоя разных приложений - надо было создать некий сервис, который будет анализировать проект, собирать его и деплоить на сервер

Главная задача заключалась в том, чтобы можно было загрузить любой проект, на любом языке и получить готовую сборку на сервере

читаем листочки
читаем листочки

К какой реализации пришли

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

спрашиваем вопросики
спрашиваем вопросики

В ходе разговоров мы пришли к следующим заключениям:

  • Проекты будем сканировать через репозитории на (GitHub/GitLab)

  • Ограничили пул языков до (python, go, php)

  • Сервисом выбрали консольную утилиту на Go

  • Чтобы не быть привязанными к платформе для билда и деплоя выбрали Ansible

Реализация кейса

Далее мы рассмотрим по шагам, какие действия мы выполняли

  1. Распределили обязанности на команду

Иван (YAML Воин) - писал плейбуки для деплоя и билда приложений
Михаил (Капитан/Scrum мастер) - раздавал всем задачи и валидировал решения
Я (PHP гребец) - писал на Go консольную утилиту

  1. Приступили к реализации

После распределения обязанностей мы приступили к решению кейса

За сутки мы смогли написать утилиту Ivan

Ваня - наша утилита
Ваня - наша утилита

Данная утилита на вход принимала репозиторий, после чего сканирует репозиторий и определяет - язык, есть ли точки входа в приложения main файлы, есть ли пакетные менеджеры, есть ли docker/docker-compose файлы и определяет фреймворк

После анализа - мы передаем ansible аргументы полученные через утилиту и запускаем плейбук с заготовленными параметрами

  1. Презентовали проект перед защитой

До защиты презентаций, эксперты проверяют решения, поэтому мы просирая дедлайны еле как закончили доделывать нашу утилиту и показали наше решение

Не знаю, как у других команд, но у нас по канонам разработки всегда получается заканчивать работу только в последние часы сдачи проектов и также с презентациями...

  1. Выступили с презентацией

жабы и рыбы
жабы и рыбы

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

Дальше покажу несколько слайдов из нашей презентации:

Итог

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

нагавнокодили и радуются
нагавнокодили и радуются

Благодарим компанию DDOS-GUARD, уже участвуем от них на втором хакатоне и довольны кейсами и самой организацией

Наша команда - https://жыбийрыр.рф

Благодарю вас за то, что прочитали данную статью

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


  1. profatsky
    01.11.2025 08:50

    Спасибо за статью!

    Почему утилита называется Ivan?


    1. deniskorbakov9 Автор
      01.11.2025 08:50

      У нас уже есть утилита с названием Миша: https://github.com/misha-ssh/cli

      Для полноты картины решили назвать Иваном, в честь нашего YAML война


      1. profatsky
        01.11.2025 08:50

        Ждем утилиты Denis и Alexander, названные в честь оставшихся участников команды, представленных на сайте жыбийрыр.рф