Files
gooseek/docs/architecture/05-gaps-and-best-practices.md
home 328d968f3f Deploy: migrate k3s → Docker; search logic → master-agents-svc
- deploy/k3s удалён, deploy/docker добавлен (Caddyfile, docker-compose, searxng)
- chat-svc: agents/models/prompts удалены, использует llm-svc (LLMClient, EmbeddingClient)
- master-agents-svc: SearchOrchestrator, classifier, researcher, actions, widgets
- web-svc: ChatModelSelector, Optimization, Sources удалены; InputBarPlus; UnregisterSW
- geo-device-svc, localization-svc: Dockerfiles
- docs: 02-k3s-services-spec.md, RUNBOOK/TELEMETRY/WORKING удалены

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:14:00 +03:00

5.5 KiB
Raw Blame History

Production checklist и требования

0. Узкие места и митигации

Область Узкое место Митигация (внедрено/требуется)
Пользователь Холодный старт 530 с Skeleton, timeout, Retry — см. §8 UI/UX
Пользователь Загрузка файлов 30300 с Прогресс по этапам + кнопка Cancel; pre-upload preview
Пользователь Гости: история теряется Предупреждение при закрытии; CTA «Сохранить в аккаунт»
Пользователь Rate limit 300 Pro Search/день 429 + предупреждение при 80%; предложение апгрейда
Инфраструктура SearXNG — единый инстанс Очередь запросов в search-svc; при росте — пул инстансов
Инфраструктура cache-worker зависает activeDeadlineSeconds во всех CronJob (520 мин)
Инфраструктура Redis/PostgreSQL без HA Sentinel/Cluster и Read replica при масштабировании
Инфраструктура travel-svc без HPA HPA 14 replicas добавлен в 02-k3s-services-spec
Функции Внешние API (LLM, FMP, TA) Retry + circuit breaker; fallback при частичном сбое

1. Инфраструктура

Компонент Helm chart Namespace
Redis bitnami/redis perplexica-infra
PostgreSQL bitnami/postgresql perplexica-infra
MinIO bitnami/minio perplexica-infra
SearXNG Deployment perplexica-infra

2. Secrets

  • notifications-secrets (vapid_public, vapid_private, smtp_url)
  • redis-credentials (url)
  • db-credentials (url)
  • auth-secrets (jwt_secret)
  • llm-credentials (openai)
  • finance-keys (fmp)
  • travel-keys (tripadvisor)
  • yookassa-credentials (shop_id, secret)

3. Сетевые политики (NetworkPolicy)

  • Ingress: только из ingress-controller
  • chat-svc → search-svc, Redis
  • cache-worker → Redis, discover-svc, finance-svc, travel-svc
  • Redis, PostgreSQL: без внешнего доступа

4. PodDisruptionBudget

Минимум 2 доступных пода для: chat-svc, search-svc.

5. Observability

  • Prometheus: метрики /metrics из каждого сервиса
  • Grafana: дашборды
  • Structured JSON логи
  • OpenTelemetry/Jaeger: распределённые трейсы
  • Алерты: latency, error rate, availability

6. Резервирование и масштабирование

Область Решение
chat-svc HPA, кэш по query_hash
Redis Sentinel / Cluster при росте
PostgreSQL Read replica, PgBouncer
SearXNG Очередь запросов в search-svc/media-svc; кэш media; при росте — пул инстансов
cache-worker Ограничение concurrency, batch size; activeDeadlineSeconds для защиты от зависаний

7. Безопасность

  • CORS: ограничить Access-Control-Allow-Origin
  • Rate limiting: API Gateway / Ingress
  • TLS (cert-manager / Let's Encrypt)
  • Retry + circuit breaker для внешних API (FMP, Tripadvisor, LLM)

8. UI/UX

Компонент Требование
Discover, Finance, Travel Skeleton при cold start; timeout; Retry
Pro/Deep Search Этапы (Classifier → Researcher → Writer); оценка времени
Загрузка файлов Прогресс по этапам: парсинг → chunking → эмбеддинги; кнопка Cancel; timeout 300 с
Гости Предупреждение при закрытии; CTA «Сохранить в аккаунт» для переноса истории
Rate limit 429 + предупреждение при 80% лимита; предложение апгрейда при достижении лимита
Ошибки Сообщение + Retry/Cancel
Travel Stepper Сохранение состояния; skeleton между шагами
Медиа Skeleton grid; 15 с timeout

9. Чек-лист развёртывания

  • Ingress path-based routing
  • Probes /health, /ready во всех сервисах
  • HPA: chat-svc, search-svc, discover-svc, finance-svc, travel-svc, upload-svc, memory-svc
  • Redis, PostgreSQL, MinIO, SearXNG
  • Secrets
  • TLS
  • Rate limiting
  • Prometheus + алерты
  • Backup PostgreSQL, MinIO
  • PDB для chat-svc, search-svc
  • Runbook оператора
  • UI/UX: skeleton, timeout, rate limit feedback, guest warning, file upload progress+cancel

10. Ссылки (внутри architecture)