Skip to content

Руководство по миграции к микросервисной архитектуре

Источник: ранее файл services/MIGRATION_GUIDE.md (перенесён и стандартизирован).

Примечание: Для быстрого старта см. startup-guide.md.

✅ Что уже сделано

Auth Service

  • ✅ Модели User и Role скопированы и адаптированы.
  • ✅ Все handlers скопированы и адаптированы (auth, rbac, csrf, two_factor, ratelimit, sanitize).
  • ✅ Убрана зависимость от Organizations.
  • ✅ База данных nimbus_auth настроена.
  • ✅ Dockerfile создан.
  • ✅ Готов к использованию.

Core Service

  • ✅ Все модели скопированы (кроме User, Role, Bill).
  • ✅ Базовые handlers созданы (organizations).
  • ✅ Auth‑middleware для проверки JWT‑токенов от auth-service.
  • ✅ База данных nimbus_core настроена.
  • ✅ Dockerfile создан.
  • ⚠️ Остальные handlers (houses, rooms, personal_accounts, utility_services, contracts) можно добавить по мере необходимости.

Billing Service

  • ✅ Заготовка создана.
  • ✅ Модель Bill скопирована.
  • ✅ База данных nimbus_billing настроена.
  • ✅ Dockerfile создан.
  • ⚠️ Требуется реализация Calculation Engine и Worker Pool.

Следующие шаги

1. Добавить остальные handlers для Core Service

Handlers можно добавлять постепенно по мере необходимости:

  • houses.go — CRUD для домов.
  • rooms.go — CRUD для помещений.
  • personal_accounts.go — CRUD для лицевых счетов.
  • utility_services.go — CRUD для услуг ЖКХ.
  • contracts.go — CRUD для договоров.
  • entrances.go — CRUD для подъездов.
  • readings.go — CRUD для показаний счётчиков.

2. Реализовать Billing Service

Согласно документации MICROSERVICES_ARCHITECTURE_ANALYSIS.md:

  • Calculation Engine для расчёта начислений.
  • Worker Pool для фоновых задач.
  • Job Queue на Redis.
  • Мониторинг процесса расчёта.

3. Миграция данных

См. раздел «Миграция данных из монолита» в startup-guide.md.

Порты

  • Auth Service: http://localhost:8001.
  • Core Service: http://localhost:8002.
  • Billing Service: http://localhost:8003.

Базы данных

  • Auth DB: localhost:5433 (nimbus_auth).
  • Core DB: localhost:5434 (nimbus_core).
  • Billing DB: localhost:5435 (nimbus_billing).
  • Redis: localhost:6379.