Микросервисы платформы
Каталог всех микросервисов ISP-платформы с описанием ответственности, API и событий.
Микросервисы платформы
Платформа состоит из 9 доменных сервисов, разделённых на два слоя: BSS (бизнес) и OSS (сеть). Каждый сервис — отдельный Bounded Context в терминах DDD, с собственной БД, Protobuf-контрактами и набором доменных событий.
Сравнение с монолитными ISP-платформами
| Аспект | Монолит (Hydra/Splynx/WHMCS) | Наша платформа |
|---|---|---|
| Архитектура | Единая кодовая база, общая БД | 9 микросервисов, database-per-service |
| Масштабирование | Вертикальное (bigger server) | Горизонтальное (Kubernetes HPA/KEDA) |
| Технологии | PHP/Ruby (один стек) | NestJS (BSS) + Go (OSS high-load) |
| API | REST/JSON, vendor-locked | Protobuf + ConnectRPC (schema-first) |
| Обновления | Downtime при обновлении всей системы | Rolling updates per-service, zero downtime |
| Мультивендорность | Ограниченный набор вендоров | Vendor Adapter pattern — любой вендор |
| Кастомизация | Форки / плагины | Расширение через новые сервисы + события |
Обзор
BSS-сервисы (бизнес)
Customer Core
Клиенты, контакты, договоры, адреса, зоны покрытия, партнёры.
Product & Subscription
Каталог тарифов, подписки, жизненный цикл услуг, ценообразование.
Billing & Finance
Баланс, платежи, двойная запись, dunning, счета, интеграция с банками.
Notification
SMS, Email, Push, Telegram — шаблоны, приоритеты, дедупликация.
Оркестрация
OSS-сервисы (сеть)
Provisioning
Vendor Adapter, state machine, идемпотентность, DLQ, reconciliation.
Network Inventory
Устройства, порты, IPAM, топология, резервирование ресурсов.
Access Control (AAA)
FreeRADIUS, профили, CoA, сессии, PPPoE/IPoE.
Mediation
Netflow/IPFIX, RADIUS Accounting, нормализация UDR.
Матрица ответственности
| Сервис | Владеет данными | ConnectRPC | RabbitMQ Events | RabbitMQ Commands |
|---|---|---|---|---|
| Customer Core | Customer, Contract, Address | ✅ | customer.events | — |
| Product & Subscription | ProductOffering, Subscription | ✅ | product.events | — |
| Billing & Finance | Account, Transaction, Invoice | ✅ | billing.events | billing.commands |
| OMS | Order, OrderStep | ✅ | — | → provisioning, billing |
| Provisioning | ProvisioningTask | ✅ (read) | provisioning.events | provisioning.commands |
| Network Inventory | Device, Port, IP, VLAN | ✅ | inventory.events | — |
| AAA | RadiusProfile, Session | ✅ | — | — |
| Notification | Template, DeliveryLog | ✅ | — | notification.commands |
| Mediation | UDR (raw + normalized) | — | mediation.events | — |
Подробнее:
- Обзор слоёв: BSS Layer, OSS Layer
- Protobuf-контракты для каждого сервиса: API-контракты
- Принципы проектирования сервисов: Архитектурные принципы