5.5 KiB
Мнения AI-моделей об архитектуре Fission Console — 2026-04-25
⚠️ Всё ниже — МНЕНИЯ (не факты). Проверять и применять критически.
GEMINI — мнение (пересказ, апрель 2026)
Контекст вопроса: "написан сервис на основе Fission, многопользовательский, с Terraform"
Что сказал:
-
Изоляция: namespace-per-user — самый надёжный путь. Terraform при создании аккаунта создаёт Namespace + ResourceQuota + NetworkPolicy.
-
Fission в multi-tenancy: можно один инстанс Fission на весь кластер, но нужно патчить Router чтобы он понимал принадлежность Environment. Либо (сложнее) — отдельный инстанс Fission/пул экзекуторов на каждый namespace.
-
Terraform как Control Plane: кастомный провайдер должен управлять полным lifecycle — регистрация пользователя в БД, создание K8s ресурсов, создание Fission ресурсов. State изолирован между пользователями.
-
poolmgr vs newdeploy: poolmgr хорош для 100ms cold start, но при 1000 пользователей — RAM кончается (не масштабируется). Рекомендует NewDeploy + HPA для multi-tenant scale.
-
Безопасность выполнения: gVisor/Kata Containers (RuntimeClass=runsc). Для публичного облака — обязательно.
-
Схема: user → .tf файл → Terraform Worker → K8s Namespace+лимиты → Fission деплоит пакет → Router → внешний трафик в нужный Namespace.
Оценка контекста: Gemini отвечал на абстрактный вопрос "как строить managed serverless". Не знал деталей нашей реализации. Часть советов — для масштаба 1000+ пользователей.
GPT-4.5 — мнение (апрель 2026)
Контекст вопроса: тот же — многопользовательский managed serverless на Fission
Что сказал:
(Полный текст ответа не сохранён — пользователь описал его как "насочинял", детали были в чате)
⚠️ Полный текст GPT-4.5 не задокументирован. Пользователь охарактеризовал ответ скептически ("насочинял"). Считать неверифицированным.
Claude Sonnet 4.6 (я) — мнение (апрель 2026)
Контекст: знаю реальную реализацию (читал main.go, deploy/, repo memory)
Для масштаба ~20 одновременных пользователей:
Что реально надо доделать:
-
ResourceQuota + LimitRange на каждый user namespace — одна функция сейчас может сожрать все ресурсы кластера. Базовая безопасность, не опционально.
-
NetworkPolicy — без этого функции разных пользователей видят друг друга внутри кластера.
-
fission_simple_functionTerraform ресурс — сейчас провайдер low-level: нужно вручную создавать Environment + Package + Function + HTTPTrigger. Нужен один высокоуровневый ресурс. -
Поверхность ошибок в UI — при провале specialization пользователь видит "вероятно не удалось". Надо тянуть реальную причину (статус package, логи executor).
Что НЕ нужно для 20 юзеров:
- gVisor — лишняя сложность для контролируемой среды
- newdeploy вместо poolmgr — poolmgr нормально работает, достаточно подстроить poolsize
- Отдельный billing service — достаточно логировать invoke в postgres
Главный тезис: Gemini описал правильную архитектуру для SaaS на 10k пользователей. Для 20 — текущая архитектура достаточна. Нужна доводка, не redesign.
Текущее состояние реализации (факты, не мнение)
- namespace-per-user ✅
- auth token → user namespace ✅
- lazy environments per language ✅
- RBAC для системных и локальных SA (fission-fetcher, fission-builder) ✅
- TTL cleanup + reaper ✅
- NSReconciler для FISSION_RESOURCE_NAMESPACES ✅
- Route prefix per user ✅
- Terraform provider (low-level CRD) ✅
- ResourceQuota / LimitRange per namespace ❌ нет
- NetworkPolicy per namespace ❌ нет
- fission_simple_function Terraform ресурс ❌ не реализован
- Нормальная поверхность ошибок в UI ❌ частично
- gVisor/Kata ❌ нет (осознанное решение)
- Billing/metering ❌ нет