AI-Ops Documentation

Русский English
  • Главная
  • Карта документации
0. С чего начать
  • Что это за продукт
  • Для кого он
  • Как устроена документация
  • Быстрые ссылки
  • Как начать разработку
  • Как найти нужный сервис
  • К кому идти по вопросам
1. Продукт
Обзор продукта
  • Миссия продукта
  • Ценность для бизнеса
  • Основные сценарии
  • Границы системы
Пользователи и персоны
  • Сегменты пользователей
  • Роли пользователей
  • Основные потребности
Пользовательские сценарии
  • Регистрация / логин
  • Основной пользовательский сценарий
  • Оплата / заказ / действие
  • Поддержка и сценарий восстановления
Функции продукта
Фича: Аутентификация
  • Цель
  • Пользовательская история
  • Бизнес-правила
  • Ограничения
  • Метрики успеха
  • Связанные сервисы
  • Связанные события / данные
  • Фича: Профиль
  • Фича: Организации
  • Фича: Топология
  • Фича: Вычислительные ресурсы
  • Фича: Кластеры
  • Фича: Каталог сервисов
Требования
  • Функциональные требования
  • Нефункциональные требования
  • Требования к производительности
  • Требования к безопасности
  • Конфиденциальность и соответствие
  • Доступность
Метрики
  • Ключевая метрика (North Star)
  • Продуктовые KPI
  • Метрики воронки
  • Метрики качества
  • Метрики экспериментов
2. Домены
Домен: Identity
  • Назначение
  • Основные концепции
  • Сущности
  • Бизнес-правила
  • Сервисы домена
  • Данные домена
  • Связанные фичи
  • Домен: Профиль пользователя
  • Домен: Поиск
  • Домен: Заказы / транзакции
  • Домен: Уведомления
  • Домен: Аналитика
  • Домен: Рекомендации
3. Архитектура
Обзор системы
  • Что входит в систему
  • Что не входит
  • Высокоуровневая диаграмма
C4 Model
  • Контекстная диаграмма
  • Диаграмма контейнеров
  • Диаграмма компонентов
  • Диаграмма развёртывания
Интеграционная архитектура
  • Внешние системы
  • Интеграции API
  • Webhooks
  • Сторонние провайдеры
Потоки данных
  • Онлайн-поток данных
  • Пакетный поток данных
  • Поток событий
  • Владение данными
Архитектура безопасности
  • Аутентификация
  • Авторизация
  • Управление секретами
  • Шифрование
  • Аудит и логирование
Надежность и масштабируемость
  • SLA / SLO
  • Планирование мощностей
  • Отказоустойчивость
  • Обратное давление и повторы
  • Восстановление после сбоев
Архитектурные принципы
  • Границы доменов
  • Принципы проектирования API
  • Принципы проектирования событий
  • Принципы контрактов данных
  • Диаграмма: auth микросервисы
Control plane
  • Архитектура компонентов (control plane)
  • Доменная модель v0
  • Протокол v0 (control plane)
  • Примеры (control plane)
Сервисы (control plane)
Сервис control plane
  • API
  • Модель данных
  • События
  • Модули
  • Операции
Сервис execution plane
  • API
  • Модель данных
  • События
  • Модули
  • Операции
Сервис resource catalog
  • API
  • Модель данных
  • События
  • Модули
  • Операции
4. Инженерия
Сервисы
Каталог сервисов
  • Все сервисы списком
  • Владельцы
  • Критичность
  • Уровень / домен / статус
  • Сервис аутентификации
  • Сервис аккаунтов
  • Облачный сервис
  • Сервис учётных данных
  • Herald
  • Сервис идентификации
  • API Gateway
  • Сервис токенов
Фронтенд
  • Обзор фронтенда
  • Структура приложения
  • Routing (фронтенд)
  • State management (фронтенд)
  • Design system (фронтенд)
  • UI components (фронтенд)
  • API контракты фронтенда
  • Обработка ошибок (фронтенд)
  • Performance (фронтенд)
  • Feature flags (фронтенд)
  • Тестирование фронтенда
Бэкенд
  • Обзор бэкенда
  • Паттерны сервисов
  • Рекомендации по API
  • Событийные паттерны
  • Паттерны доступа к БД
  • Кэширование
  • Асинхронные задачи и воркеры
  • Идемпотентность
  • Обработка ошибок
  • Тестирование бэкенда
Данные
  • Обзор данных
  • Системы-источники
  • Контракты данных
  • Каталог схем событий
  • Хранилище данных
  • Витрины данных
  • ETL / ELT-пайплайны
  • Качество данных
  • Происхождение данных
  • Политики хранения
  • Политики доступа
ML / DS
  • Обзор ML/DS
  • Сценарии (ML)
  • Каталог моделей
  • Feature store
  • Training pipelines
  • Inference pipelines
  • Offline evaluation
  • Online evaluation / A-B
  • Мониторинг (ML)
  • ML runbooks
QA / Качество
  • Стратегия качества
  • Пирамида тестов
  • Тестовые окружения
  • Тестовые данные
  • Ручное тестирование
  • Автоматизированное тестирование
  • Нагрузочное тестирование
  • Тестирование безопасности
  • Критерии приёмки релиза
  • Процесс разбора багов
5. Платформа
Инфраструктура
  • Ansible
  • WireGuard
  • Kubernetes
  • Longhorn
  • Ingress
  • PostgreSQL Cluster
  • Redis
  • Kafka
  • Vault
  • MinIO
  • Authentik
  • Monitoring
  • Logging
  • Tracing
  • Nexus
  • SonarQube
  • GlitchTip
  • GitLab Runner
  • Kubernetes Dashboard
  • OLM
  • Deploy
  • Internal DNS
  • Обзор (инфраструктура)
  • Config generator
  • Пример (инфраструктура)
  • Скрипты (инфраструктура)
Окружения
  • Локальное
  • Stage
  • Pre
  • Продакшен (prod)
  • Tech
  • Облако
  • Объектное хранилище
  • CI/CD
  • Секреты и сертификаты
Наблюдаемость
  • Логирование
  • Метрики
  • Трейсинг
  • Алертинг
  • Резервное копирование и восстановление
6. Разработка
  • Быстрый старт
  • Локальная настройка
  • Карта репозиториев
  • Стандарты кода
  • Git-процесс
  • Стратегия ветвления
  • Руководство по код-ревью
  • Критерии готовности
  • Процесс релиза
  • Флаги фич
  • FAQ разработчика
  • Миграция secure auth
7. Эксплуатация
  • Дежурство
  • Управление инцидентами
  • Уровни критичности
  • Политика эскалации
  • Постмортемы
  • Ранбуки
  • Управление изменениями
  • Непрерывность бизнеса
8. Аналитика
  • План трекинга событий
  • Определения KPI
  • Каталог дашбордов
  • Словарь метрик
  • Эксперименты
  • Стандарты отчётности
9. Управление
  • Решения (ADR)
  • Политика статуса контента
  • Changelog обновлений документации
Безопасность и соответствие
  • Модель угроз
  • Безопасная разработка
  • Управление доступом
  • Конфиденциальность
  • Реагирование на инциденты
Ответственность и владельцы
  • Команды
  • Зоны ответственности команд
  • Владельцы сервисов
  • Владельцы доменов
  • Контакты
Глоссарий
  • Бизнес-термины
  • Продуктовые термины
  • Технические термины
  • Сокращения

Index

Эта директория содержит Helm-чарты для деплоя сервисов платформы AIOps через helmfile. Вся общая логика вынесена в библиотечный чарт charts/base-service (единый стандарт деплоя для микросервисов).

Как устроена конфигурация

Каждый релиз собирается из слоёв (в порядке приоритета — последний переопределяет первый):

1) Helmfile defaults (helmfile.yaml) - namespace: <env>-<release> - createNamespace: true, wait: true, timeout: 600

2) Environment values (envs/<env>.yaml) Глобальные константы окружения: global.domain, namespaces инфраструктуры, флаги мониторинга.

3) Service base values (services/<service>/values.yaml) Настройки конкретного сервиса, общие для всех окружений.

4) Service environment values (services/<service>/values-<env>.yaml) Переопределения для конкретного окружения (реплики, ресурсы).

Base-service: контракт

base-service — library chart, который генерирует типовые ресурсы (Deployment/Service/HPA/PDB/NetworkPolicy/ServiceMonitor/PrometheusRule/RBAC/Ingress).

Компоненты

Один релиз может иметь несколько компонентов (например: api, worker):

  • Имя ресурсов:
  • api → <release> (основной компонент)
  • другие → <release>-<component>

  • Порты и видимость: По умолчанию все порты компонента публикуются в Service. Чтобы скрыть служебный порт (например, admin) от внутреннего трафика кластера, используйте exposeViaService: false.

1
2
3
4
5
components:
  api:
    ports:
      http: { port: 80 }
      admin: { port: 9901, exposeViaService: false }

Компонент без ports не получает Service/Ingress и по умолчанию изолирован.

Надежность и жизненный цикл (Reliability)

base-service предоставляет инструменты для обеспечения High Availability и плавного деплоя:

  • Graceful Shutdown: Используйте lifecycle.preStop и terminationGracePeriodSeconds для корректного завершения соединений (draining).
  • Topology Spread: Чтобы реплики не оказывались на одной ноде, используйте topologySpreadConstraints.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
components:
  api:
    replicaCount: 3
    terminationGracePeriodSeconds: 60
    lifecycle:
      preStop:
        exec:
          command: ["/bin/sh", "-c", "sleep 30"]
    topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: ScheduleAnyway
        labelSelector:
          matchLabels:
            app.kubernetes.io/instance: '{{ .Release.Name }}'
            app.kubernetes.io/component: api

ConfigMaps

Вы можете генерировать ConfigMaps прямо из values.yaml релиза. Все значения поддерживают Helm-шаблонизацию через tpl.

1
2
3
4
5
6
configMaps:
  my-config:
    config.yaml: |
      server:
        env: {{ .Values.global.environment }}
        port: 8080

Vault (bank-vaults)

Секреты подхватываются автоматически из Vault: secret/aiops/services/<env>/<release>/<component>

1
2
3
4
vault:
  enabled: true
  role: identity-service
  autoEnvFromPath: true

Monitoring (Prometheus Operator)

  • ServiceMonitor создаётся автоматически для каждого компонента с портом metricsPort (по умолчанию metrics).
  • Metrics Service (Option A): Если порт метрик не должен быть в основном Service, включите metricsService. Это создаст отдельный <release>-metrics сервис.
  • Job Label: Метка job в Prometheus будет иметь вид {{ .Release.Name }}-{{ .Component }}.
1
2
3
4
5
6
7
8
components:
  api:
    ports:
      admin: { port: 9901, exposeViaService: false }
    metricsPort: admin
    metricsPath: /stats/prometheus
    metricsService:
      enabled: true

Logging (fluent-bit)

Глобально включается через envs/<env>.yaml:

1
2
3
observability:
  logging:
    enabled: true

Можно переопределять на уровне компонента:

1
2
3
4
5
components:
  api:
    observability:
      logging:
        enabled: false

NetworkPolicy (Zero Trust)

Если networkPolicy.enabled: true, генерируется изолирующая политика:

  • Ingress: разрешен только от ingress-nginx (на порты с exposeViaIngress: true или http/https).
  • Monitoring: разрешен только для Prometheus на metricsPort.
  • Egress:
  • DNS (kube-system)
  • Vault
  • Kube API: включите allowKubeAPI: true. Список разрешенных IP берется из global.kubeAPICIDRs.
  • Custom Rules: правила toNamespaces, toPods, toCIDRs.
1
2
3
4
5
6
7
8
9
components:
  control-plane:
    allowKubeAPI: true
networkPolicy:
  enabled: true
  egress:
    - toNamespaces: ["{{ .Values.global.environment }}-auth-orchestrator"]
      ports: [8080]
      component: api

RBAC

RBAC включается флагом rbac.enabled. Поддерживается два режима: 1. Role (по умолчанию) — права внутри namespace. 2. ClusterRole (clusterWide: true) — права на уровне кластера (нужно для доступа к nodes, namespaces).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
rbac:
  enabled: true

components:
  control-plane:
    rbac:
      clusterWide: true
      rules:
        - apiGroups: [""]
          resources: ["nodes"]
          verbs: ["get", "list"]

IDE Support

В charts/base-service есть файл values.schema.json. Он обеспечивает: * Автодополнение полей в VS Code/Cursor. * Валидацию типов (boolean, integer, enum). * Подсказки по обязательным полям.

Релизы (helmfile)

Список релизов определён в helmfile.yaml. Для каждого окружения используется:

  • services/<svc>/values.yaml
  • services/<svc>/values-<env>.yaml
  • envs/<env>.yaml

Запуск:

1
2
3
helmfile -e stage apply
helmfile -e pre apply
helmfile -e prod apply

Troubleshooting

NetworkPolicy Issues

Если сервис не может достучаться до базы или другого сервиса при включенном networkPolicy.enabled: true: 1. Проверьте логи пода на наличие ошибок таймаута. 2. Проверьте NetworkPolicy в namespace сервиса: kubectl get netpol -n <namespace>. 3. Убедитесь, что egress правила явно разрешают доступ к целевому namespace и порту. 4. Помните, что defaultEgressDeny: true блокирует все, что не разрешено явно (включая доступ в интернет).

Vault Injection Failures

Если секреты не прокидываются в переменные окружения: 1. Проверьте аннотации пода: kubectl describe pod <pod-name>. 2. Убедитесь, что vault.role соответствует роли, созданной в Vault для этого сервиса. 3. Проверьте путь в Vault: по умолчанию используется secret/aiops/services/<env>/<release>/<component>. 4. Проверьте логи vault-agent (если используется sidecar) или системные события.

HPA / VPA Conflicts

Библиотечный чарт запрещает одновременное включение HPA и VPA для одного компонента. Если вы видите ошибку fail при рендеринге — выберите один механизм масштабирования.

Rollback Strategy

Для отката изменений используйте стандартные команды Helm через helmfile:

1
2
3
4
5
# Просмотр истории релизов
helmfile -e stage status

# Откат конкретного релиза (через helm напрямую)
helm rollback <release-name> <revision-number> -n <namespace>

Рекомендуется всегда делать helmfile apply с флагом --interactive или сначала запускать helmfile diff для проверки планируемых изменений.

Меню
Главная Карта документации
0. С чего начать
С чего начать Что это за продукт Для кого он Как устроена документация Быстрые ссылки Как начать разработку Как найти нужный сервис К кому идти по вопросам
1. Продукт
Продукт
2. Домены
Домены Домен: Профиль пользователя Домен: Поиск Домен: Заказы / транзакции Домен: Уведомления Домен: Аналитика Домен: Рекомендации
3. Архитектура
Архитектура Диаграмма: auth микросервисы
4. Инженерия
Инженерия
5. Платформа
Платформа Облако Объектное хранилище CI/CD Секреты и сертификаты Резервное копирование и восстановление
6. Разработка
Разработка Быстрый старт Локальная настройка Карта репозиториев Стандарты кода Git-процесс Стратегия ветвления Руководство по код-ревью Критерии готовности Процесс релиза Флаги фич FAQ разработчика Миграция secure auth
7. Эксплуатация
Эксплуатация Дежурство Управление инцидентами Уровни критичности Политика эскалации Постмортемы Ранбуки Управление изменениями Непрерывность бизнеса
8. Аналитика
Аналитика План трекинга событий Определения KPI Каталог дашбордов Словарь метрик Эксперименты Стандарты отчётности
9. Управление
Управление Решения (ADR) Политика статуса контента Changelog обновлений документации

На странице

Как устроена конфигурация Base-service: контракт Компоненты Надежность и жизненный цикл (Reliability) ConfigMaps Vault (bank-vaults) Monitoring (Prometheus Operator) Logging (fluent-bit) NetworkPolicy (Zero Trust) RBAC IDE Support Релизы (helmfile) Troubleshooting NetworkPolicy Issues Vault Injection Failures HPA / VPA Conflicts Rollback Strategy