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

57 lines
2.1 KiB
Markdown

# Миграция 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)