Files
SQS-service/doc/2026-08-13-migration-to-nubes.md
T

2.1 KiB

Миграция shared-sqs: k8s → Nubes Managed

Сессия 2026-08-13


Текущая архитектура (k8s)

  • Go-бинарник, HTTP-сервер, ~50MB RAM
  • Deployment в k8s: naeel/shared-sqs:v0.1.22
  • Redis sidecar — write-through persistence
  • Exposed через Ingress + TLS

Целевая архитектура (Nubes Managed)

Компонент Сейчас После
Рантайм k8s Deployment Nubes Simple HTTP Container
Persistence Redis pod в k8s Nubes Managed Redis
Секреты k8s Secret Env vars в Container
Ingress/TLS k8s Ingress встроен в Simple HTTP Container

Код не меняется вообще. Только инфраструктура.

Совместимость

Сервис протестирован как AWS SQS совместимый — работает с AWS CLI, AWS SDK, Yandex.

Открытые вопросы (уточнить перед деплоем)

  1. Managed Redis: TLS или plain endpoint? → влияет на флаг REDIS_INSECURE в коде
  2. Simple HTTP Container: поддержка custom domain или только *.containerk8s.services.ngcloud.ru?

План миграции

Шаг 1 — Создать Managed Redis на Nubes

Шаг 2 — Задеплоить образ в Simple HTTP Container:

image: naeel/shared-sqs:v0.1.22
PORT=4100
SHARED_SQS_ADMIN_TOKEN=<секрет>
REDIS_ADDR=<managed redis endpoint>
REDIS_USER=<user>
REDIS_PASSWORD=<password>
SHARED_SQS_SEED_DEMO=false

Шаг 3 — Проверить работоспособность (AWS CLI / SDK)

Шаг 4 — Выключить k8s Deployment

Что НЕ нужно делать

  • Переписывать код на Node.js/Flask — не нужно
  • Менять Redis persistence layer — не нужно
  • Мигрировать данные вручную — Redis восстановит состояние автоматически при старте (LoadAllQueues / LoadAllTenantsRaw)