s3e25
Тысяча пушей!
Дипломная работа
Сегодня у тебя будет достаточно сложная дипломная работа, ее не обязательно делать в один присест. В этой работе тебе нужно будет продемонстрировать все полученные навыки из 3х сезонов, нет правильных и неправильных решений, суть — добиться ожидаемого результата, построить отказоустойчивую инфраструктуру и следовать техническому заданию.
Поехали!
- У тебя есть некий репозиторий в гитлабе с единственным .gitlab-ci.yml, в этом файле тебе необходимо будет описать пайплайн, который после запуска выведет тебе выпадающий список.
- В выпадающем списке должны быть значения 1, 2, 3, 4, 5 - это количество серверов, которые после выполнения пайплайна будут автоматически подняты в облаке с помощью terraform. Соответственно если у тебя в текущий момент крутятся 5 серверов и второй итерации ты выбрал 2, то лишние сервера в облаке удаляются.
- Чтобы попадать на эти сервера, тебе потребуется разобраться с балансировщиком нагрузки, документация по этому ресурсу можешь найти здесь. Балансировщик нагрузки единожды поднимается с помощью terraform, затем при изменении количества серверов, в балансировщик нагрузки передается эта информация. То есть у тебя всегда должен быть список актуальных IP адресов.
- Когда ты заходишь на балансировщик по IP или доменному имени, балансировщик перенаправляет запросы на один из тех серверов которые ты поднял. Используй health check.
- После поднятия серверов через terraform, необходимо автоматически сформировать inventory файл для ansible и прогнать роль nginx.
- Сделать приложение на Flask (можно взять с первого сезона), запаковать его в docker образ, приложение должно отдавать ID сервера на котором оно будет работать (ID взять из tarraform).
- Docker образ должен по новому коммиту собираться и заливаться в приватный registry.
- После того как ты прогнал роль nginx, деплоишь Flask контейнер на этот сервер.
- Nginx конфиг проксирует на порт этого приложения и выводит на экран ID сервера.
- State состояния terraform хранится в S3.
- Автоматически добавлять новые сервера в мониторинг, prometheus + grafana, выводить «золотые сигналы». Если сервер удаляется из инфраструктуры, то из мониторинга он автоматически зачищается. Можешь использовать consul либо что-то другое.
- Алерты необходимо подключить к телеграм каналу. Помимо алертов при создании и удалении серверов, нужно про это сообщать в этот канал — Поднято 2 дополнительных сервера, с такими-то IDшниками, или удалено.
Если есть вопросы по техническому заданию, можешь их задавать. С самой контрольной работой я не помогаю, если ты дошел до контрольной работы, значит владеешь всеми нужными знаниями. Все технические вопросы ты решаешь самостоятельно.
В результатах работы я хочу увидеть от тебя запись на видео всего процесса, либо скриншоты с описанием работы.
Если где-то закопаешься, отложи, мы никуда не гоним, делай когда есть время. Если со всем справишься, можешь смело идти на собесы, тебя оторвут с руками.
Дерзай!