- AWS
- Terraform
- Ansible
- Kubernetes
- Docker
- Jenkins
- Prometheus + Alertmanager
- Инфраструктура разворачивается выполнением скрипта init_deploy.ps1 в корне репозитория.
- Инициализируется Terraform, в директорию которого заранее помещён ssh-ключ diplom.pem.
- Terraform разворачивает ВМ, выполняет локальные скрипты, затем выполняет скрипты на созданной ВМ
- Далее запущенный на ВМ скрипт устанавливает и настраивает Ansible, помещает в ВМ ssh-ключ для выполнения Ansible Playbook, затем запускает Playbook.
- Playbook устанавливает Docker, Kubernetes и Kind, настраивает их, создаёт кластер и запускает манифесты для Jenkins, Prometheus, Alertmanager и собираемого приложения.
- Jenkins после запуска автоматически собирает проект, затем загружает собранный артефакт в GitHub и кластер Kind.
- Kubernetes подхватывает загруженный артефакт с приложением и запускает его в CronJob.
- Prometheus собирает метрики приложения и триггерит алерты в случае, если метрики будут ниже порогового значения или приложение не запускалось дольше 5 минут.
- AWS аккаунт
- Установлены Terraform, AWS CLI
- Сгенерирован SSH-ключ для работы с AWS
- Доступность сервисов AWS, Terraform