AIOps представляет собой микросервисную платформу для управления инфраструктурой и операциями с событийно-ориентированной архитектурой.
Обзор архитектуры
graph TB
subgraph "External Clients"
WebApp[Web Application]
MobileApp[Mobile App]
CLI[CLI Tools]
end
subgraph "API Layer"
Gateway[API Gateway
Envoy + Control Plane] end subgraph "Auth Platform" Identity[Identity Service
Users & Identifiers] Credential[Credential Service
Passwords & Secrets] Auth[Auth Service
Sessions & Tokens] Token[Session Token service
JWT Management] end subgraph "Core Services" Account[Account Service
Account Management] Herald[Herald Service
Notifications] Cloud[Cloud Service
Infrastructure] end subgraph "Event Bus" Kafka[(Kafka
Event Stream)] end subgraph "Data Layer" PostgresIdentity[(PostgreSQL
Identity DB)] PostgresCredential[(PostgreSQL
Credential DB)] RedisCache[(Redis
Cache & Sessions)] end WebApp --> Gateway MobileApp --> Gateway CLI --> Gateway Gateway -->|gRPC| Identity Gateway -->|gRPC| Credential Gateway -->|gRPC| Auth Gateway -->|gRPC| Account Gateway -->|gRPC| Herald Gateway -->|gRPC| Cloud Identity --> PostgresIdentity Identity --> RedisCache Identity -.->|events| Kafka Credential --> PostgresCredential Credential --> RedisCache Credential -.->|events| Kafka Auth --> RedisCache Auth -.->|events| Kafka Herald -.->|consumes| Kafka Account -.->|consumes| Kafka style Gateway fill:#4A90E2 style Kafka fill:#FF6B6B style PostgresIdentity fill:#51B749 style PostgresCredential fill:#51B749 style RedisCache fill:#DC382C
Envoy + Control Plane] end subgraph "Auth Platform" Identity[Identity Service
Users & Identifiers] Credential[Credential Service
Passwords & Secrets] Auth[Auth Service
Sessions & Tokens] Token[Session Token service
JWT Management] end subgraph "Core Services" Account[Account Service
Account Management] Herald[Herald Service
Notifications] Cloud[Cloud Service
Infrastructure] end subgraph "Event Bus" Kafka[(Kafka
Event Stream)] end subgraph "Data Layer" PostgresIdentity[(PostgreSQL
Identity DB)] PostgresCredential[(PostgreSQL
Credential DB)] RedisCache[(Redis
Cache & Sessions)] end WebApp --> Gateway MobileApp --> Gateway CLI --> Gateway Gateway -->|gRPC| Identity Gateway -->|gRPC| Credential Gateway -->|gRPC| Auth Gateway -->|gRPC| Account Gateway -->|gRPC| Herald Gateway -->|gRPC| Cloud Identity --> PostgresIdentity Identity --> RedisCache Identity -.->|events| Kafka Credential --> PostgresCredential Credential --> RedisCache Credential -.->|events| Kafka Auth --> RedisCache Auth -.->|events| Kafka Herald -.->|consumes| Kafka Account -.->|consumes| Kafka style Gateway fill:#4A90E2 style Kafka fill:#FF6B6B style PostgresIdentity fill:#51B749 style PostgresCredential fill:#51B749 style RedisCache fill:#DC382C
Ключевые компоненты
API Gateway (Envoy)
- Роль: Единая точка входа для всех внешних запросов
- Технологии: Envoy Proxy + Control Plane (Go)
- Функции:
- Маршрутизация запросов к микросервисам
- JWT authentication/authorization
- Rate limiting и throttling
- Request/response трансформация
- TLS termination
Auth Platform
Набор микросервисов для управления идентичностью и аутентификацией:
Identity Service
- Управление пользователями (User)
- Управление идентификаторами (Email, Phone)
- Верификация контактов (OTP)
- События:
identity.user.events,identity.identifier.events
Credential Service
- Хранение паролей (Argon2id)
- Верификация паролей (constant-time)
- Ротация учетных данных
- События:
credential.password.events
Auth Service
- Создание и управление сессиями
- Выдача access/refresh токенов
- Logout и отзыв токенов
Session Token service
- Генерация и валидация JWT
- Управление ключами подписи
- Token introspection
Core Services
Account Service
- Управление аккаунтами организаций
- Биллинг и подписки
- Team management
Herald Service
- Отправка уведомлений (Email, SMS, Push)
- Шаблоны сообщений
- Delivery tracking
Cloud Service
- Управление облачной инфраструктурой
- Провижионинг ресурсов
- Мониторинг состояния
Event Bus (Kafka)
- Роль: Асинхронная передача событий между сервисами
- Паттерны: Transactional Outbox, Event Sourcing
- Topics:
identity.user.events— события пользователейidentity.identifier.events— события идентификаторовcredential.password.events— события паролей
Data Layer
PostgreSQL
- Отдельная БД для каждого сервиса (Database per Service)
- Партиционирование таблиц для масштабирования
- Transactional Outbox таблицы
Redis
- Кеширование часто используемых данных
- Хранение сессий
- Distributed locks
- Rate limiting counters
Коммуникация между сервисами
Синхронная (gRPC)
sequenceDiagram
participant Client
participant Gateway
participant Identity
participant Credential
Client->>Gateway: POST /api/v1/register
Gateway->>Identity: CreateUser(username)
Identity-->>Gateway: User{id, username}
Gateway->>Credential: SetPassword(user_id, password)
Credential-->>Gateway: PasswordCredential
Gateway-->>Client: 201 Created
Асинхронная (Kafka)
sequenceDiagram
participant Identity
participant Outbox
participant Worker
participant Kafka
participant Herald
Identity->>Outbox: INSERT event + business data (same tx)
Worker->>Outbox: SELECT pending events
Worker->>Kafka: PUBLISH event
Worker->>Outbox: UPDATE status=published
Herald->>Kafka: CONSUME event
Herald->>Herald: Send welcome email
Принципы архитектуры
- Database per Service: Каждый сервис владеет своей БД
- API Gateway Pattern: Единая точка входа через Envoy
- Event-Driven: Асинхронная коммуникация через Kafka
- Transactional Outbox: Гарантия доставки событий
- Clean Architecture: Разделение на слои Core → Use Case → Infrastructure → API
- Domain-Driven Design: Явные границы доменов
Связанные страницы
- What is in Scope — что входит в систему
- What is Out of Scope — что не входит в систему
- Диаграмма контейнеров — детализация контейнеров
- Data Flow — потоки данных