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 обновлений документации
Безопасность и соответствие
  • Модель угроз
  • Безопасная разработка
  • Управление доступом
  • Конфиденциальность
  • Реагирование на инциденты
Ответственность и владельцы
  • Команды
  • Зоны ответственности команд
  • Владельцы сервисов
  • Владельцы доменов
  • Контакты
Глоссарий
  • Бизнес-термины
  • Продуктовые термины
  • Технические термины
  • Сокращения

Git-процесс

Previous Next

AIOps использует Trunk-Based Development с короткоживущими feature branches и строгими правилами коммитов.

Основные принципы

  1. Main branch — всегда готов к деплою в production
  2. Feature branches — короткоживущие (1-3 дня max)
  3. Conventional Commits — единственный формат коммитов
  4. Pre-commit hooks — автоматическая проверка перед коммитом

Именование веток

Формат

1
<type>/<TICKET-ID>__<short_description>

Типы веток

  • feat/ — новая функциональность
  • fix/ — исправление бага
  • refactor/ — рефакторинг без изменения поведения
  • chore/ — обслуживание, зависимости
  • docs/ — только документация
  • test/ — добавление/исправление тестов

Примеры

1
2
3
4
5
feat/IDENTITY-42__add_user_creation
fix/CREDENTIAL-15__password_validation_bug
refactor/AUTH-28__extract_domain_service
chore/DEPS-03__update_sqlalchemy
docs/DOC-11__update_architecture_diagrams

Формат коммитов (Conventional Commits)

Структура

1
<type>(scope): <message>

Важно: Коммиты должны быть однострочными (без body, без footers).

Типы коммитов

  • feat — новая функциональность
  • fix — исправление бага
  • refactor — рефакторинг кода
  • perf — улучшение производительности
  • test — добавление/исправление тестов
  • docs — изменения в документации
  • style — форматирование, пробелы (не влияет на логику)
  • build — изменения в build system или зависимостях
  • ci — изменения в CI/CD конфигурации
  • chore — обслуживание, не затрагивающее src или test
  • revert — откат предыдущего коммита

Примеры

1
2
3
4
5
6
7
feat(identity): add user creation use case
fix(uow): handle transaction rollback on error
refactor(credential): extract password domain service
test(identity): add unit tests for UserDomainService
docs(architecture): update C4 container diagram
chore(deps): bump sqlalchemy to 2.0.35
ci(gitlab): add matrix testing for Python 3.11-3.13

Workflow

1. Создать feature branch

1
2
3
git checkout main
git pull origin main
git checkout -b feat/IDENTITY-42__add_user_creation

2. Работать с изменениями

1
2
3
4
5
6
# Делать изменения
git add .
git commit -m "feat(identity): add user creation use case"

# Push в remote
git push -u origin feat/IDENTITY-42__add_user_creation

3. Создать Merge Request

  • Используй шаблон MR
  • Укажи описание изменений
  • Добавь reviewer'ов
  • Убедись, что CI проходит

4. Code Review

  • Ответь на комментарии
  • Внеси исправления
  • Получи approval

5. Merge

  • Squash & Merge — предпочтительный способ
  • Удали feature branch после merge

Pre-commit Hooks

Pre-commit hooks запускаются автоматически перед каждым коммитом.

Установка

1
2
pip install pre-commit
pre-commit install

Что проверяется

  1. Базовые проверки:
  2. check-ast — валидность Python синтаксиса
  3. trailing-whitespace — пробелы в конце строк
  4. end-of-file-fixer — пустая строка в конце файла
  5. check-yaml — валидность YAML
  6. check-merge-conflict — маркеры merge конфликтов

  7. Conventional Commits:

  8. conventional-pre-commit — проверка формата сообщения коммита

  9. Python Quality:

  10. ruff check — линтинг кода
  11. ruff format — форматирование
  12. mypy — проверка типов (strict mode)

Пропуск hooks (осторожно!)

1
2
# ТОЛЬКО В КРАЙНЕМ СЛУЧАЕ
git commit --no-verify -m "..."

Никогда не пропускайте hooks без веской причины!

Правила работы с main

Запрещено:

  • ❌ Прямой push в main без Merge Request
  • ❌ Force push в main
  • ❌ Merge без approval
  • ❌ Merge с failing CI
  • ❌ Коммиты без conventional format

Обязательно:

  • ✅ Все изменения через Merge Request
  • ✅ Минимум 1 approval для merge
  • ✅ Все CI проверки должны пройти
  • ✅ Conventional Commits формат
  • ✅ Актуальная ветка с main перед merge

Rebase vs Merge

Rebase (рекомендуется)

Используй rebase для синхронизации с main:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
git checkout feat/IDENTITY-42__add_user_creation
git fetch origin
git rebase origin/main

# Если конфликты
git status
# Разрешить конфликты
git add .
git rebase --continue

git push --force-with-lease origin feat/IDENTITY-42__add_user_creation

Merge (только для main)

Merge используется только при слиянии feature branch в main через MR.

Amend Commits

НИКОГДА не используй git commit --amend для коммитов, которые уже были pushed в remote, если это не твоя личная ветка и никто другой её не использует.

1
2
3
4
5
6
7
8
9
# OK — локальный uncommitted коммит
git add .
git commit -m "feat(identity): add use case"
git commit --amend -m "feat(identity): add user creation use case"
git push

# ОПАСНО — уже pushed коммит
git push
git commit --amend  # ❌ Не делай так!

Cherry-pick

Используй cherry-pick для переноса конкретных коммитов:

1
2
git checkout target-branch
git cherry-pick <commit-hash>

Конфликты

Разрешение конфликтов

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. Получить последние изменения
git fetch origin

# 2. Rebase на main
git rebase origin/main

# 3. Разрешить конфликты вручную
# Редактировать файлы, убрать маркеры <<<<<<<, =======, >>>>>>>

# 4. Добавить разрешенные файлы
git add <файлы>

# 5. Продолжить rebase
git rebase --continue

# 6. Force push (с защитой)
git push --force-with-lease

Отменить rebase

1
git rebase --abort

Полезные команды

Просмотр истории

1
2
3
4
5
6
7
8
# Короткий лог
git log --oneline --graph --decorate --all

# Изменения в файле
git log -p <file>

# Кто изменил строку
git blame <file>

Stash (временное сохранение)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Сохранить незакоммиченные изменения
git stash

# Посмотреть stash
git stash list

# Применить последний stash
git stash pop

# Применить конкретный stash
git stash apply stash@{1}

Откат изменений

1
2
3
4
5
6
7
8
# Откатить файл к состоянию из HEAD
git checkout HEAD -- <file>

# Откатить все незакоммиченные изменения
git reset --hard HEAD

# Откатить последний коммит (локально)
git reset --soft HEAD~1

Связанные страницы

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

На странице

Основные принципы Именование веток Формат Типы веток Примеры Формат коммитов (Conventional Commits) Структура Типы коммитов Примеры Workflow 1. Создать feature branch 2. Работать с изменениями 3. Создать Merge Request 4. Code Review 5. Merge Pre-commit Hooks Установка Что проверяется Пропуск hooks (осторожно!) Правила работы с main Запрещено: Обязательно: Rebase vs Merge Rebase (рекомендуется) Merge (только для main) Amend Commits Cherry-pick Конфликты Разрешение конфликтов Отменить rebase Полезные команды Просмотр истории Stash (временное сохранение) Откат изменений Связанные страницы