## Официальная формулировка технического задания
Задача: Обеспечение развертывания, эксплуатации и мониторинга микросервисного Spring Boot приложения в Kubernetes-кластере с полным циклом CI/CD и интеграцией Observability-стэка.
Требования:
1. Контейнеризация и Оркестрация:
* Разработать Docker-образы для всех компонентов микросервисного Spring Boot приложения.
* Реализовать конфигурации развертывания (Deployments), сервисов (Services) и связанных ресурсов Kubernetes (k8s) для обеспечения функционирования приложения в кластере.
2. Система Непрерывной Интеграции и Непрерывного Развертывания (CI/CD):
* Внедрить автоматизированный пайплайн CI/CD с использованием GitHub Actions (или развернутого локально Git-сервера).
* Обеспечить возможность деплоя на два изолированных целевых окружения:
* Тестовое окружение (Staging/Test): Для предрелизного тестирования и валидации.
* Продуктовое окружение (Production/Prod): Для эксплуатации конечными пользователями.
* Пайплайн должен включать этапы: сборка, тестирование, создание артефактов (Docker-образов), безопасное развертывание в соответствующие окружения (с применением стратегий деплоя).
3. Безопасность Инфраструктуры:
* Провести харденинг (hardening) операционных систем на обоих серверах (тестовом и продуктовом) в соответствии с лучшими практиками безопасности.
* Настроить и поддерживать межсетевые экраны (фаерволы) на уровне ОС (например, firewalld, ufw) и/или облачных провайдеров, обеспечив минимально необходимый набор открытых портов и строгий контроль входящего/исходящего трафика.
* Реализовать базовые меры безопасности Kubernetes (RBAC, секреты, политики сети).
4. Централизованное Логирование (Logging):
* Внедрить сбор, агрегацию и хранение логов приложения и инфраструктуры с использованием стэка Loki.
* Настроить Grafana для визуализации и анализа логов из Loki.
5. Мониторинг Метрик (Monitoring):
* Внедрить систему сбора метрик Prometheus для мониторинга состояния приложения (Spring Boot Actuator), Kubernetes-кластера, узлов и других критичных компонентов.
* Настроить Grafana для создания дашбордов визуализации метрик из Prometheus.
6. Распределенная Трассировка (Tracing):
* Интегрировать инструмент распределенной трассировки (Jaeger или Zipkin) для отслеживания запросов между микросервисами.
* Настроить экспорт трейсов из приложения и их сбор в выбранной системе.
7. Система Оповещений (Alerting):
* Настроить Grafana Alerts (или механизм оповещений Prometheus Alertmanager с интеграцией в Grafana) для создания правил оповещений на основе метрик (Prometheus) и/или логов (Loki).
* Определить критичные метрики (например, доступность сервисов, загрузка CPU/памяти, ошибки 5xx, время отклика) и установить пороги срабатывания алертов.
* Настроить каналы доставки алертов (например, электронная почта, Slack, Telegram, PagerDuty).
8. Документация:
* Предоставить документацию по конфигурации пайплайнов CI/CD, развертыванию в k8s, настройкам безопасности, схемам работы Observability-стэка (Loki, Prometheus, Grafana, Jaeger/Zipkin) и алертинга.
Цель: Создать отказоустойчивую, безопасную и наблюдаемую платформу для эксплуатации микросервисного приложения в Kubernetes, обеспечивающую автоматизированный процесс поставки изменений на тестовое и продуктовое окружения, а также предоставляющую инструменты для оперативного контроля, анализа проблем и реагирования на инциденты.
Опубликован 03.08.2025 в 16:03 Последнее изменение: 24.07.2025 в 13:41
Заказ находится в архиве