Ответ
В проекте реализован полный CI/CD-пайплайн с использованием современных DevOps-практик и инструментов:
Основной стек:
- CI/CD: GitLab CI (или Jenkins). Автоматизация сборки, тестирования и деплоя.
- Контейнеризация: Docker. Упаковка приложения и зависимостей в образы.
- Оркестрация: Kubernetes (K8s). Управление контейнеризированными приложениями, scaling, rolling updates.
- Инфраструктура как код (IaC): Terraform. Провиженинг облачных ресурсов (AWS/GCP) декларативно.
- Мониторинг и логи: Prometheus (сбор метрик), Grafana (визуализация), ELK-стек (логи). Настроены алерты.
Пример пайплайна GitLab CI (.gitlab-ci.yml):
stages:
- build
- test
- deploy
build-job:
stage: build
image: maven:3.8-openjdk-17
script:
- mvn clean compile
unit-test-job:
stage: test
script:
- mvn test
deploy-to-staging:
stage: deploy
script:
- echo "Building Docker image..."
- docker build -t my-app:$CI_COMMIT_SHA .
- echo "Deploying to Kubernetes..."
- kubectl apply -f k8s/deployment.yaml -n staging
only:
- main
Это обеспечивает автоматизированную, надежную и повторяемую доставку кода от разработки до production.