- localization-svc: defaultLocale ru, resolveLocale only by geo - web-svc: DEFAULT_LOCALE ru, layout lang=ru, embeddedTranslations fallback ru - countryToLocale: default ru when no country or unknown country Co-authored-by: Cursor <cursoragent@cursor.com>
5.5 KiB
5.5 KiB
Production checklist и требования
0. Узкие места и митигации
| Область | Узкое место | Митигация (внедрено/требуется) |
|---|---|---|
| Пользователь | Холодный старт 5–30 с | Skeleton, timeout, Retry — см. §8 UI/UX |
| Пользователь | Загрузка файлов 30–300 с | Прогресс по этапам + кнопка Cancel; pre-upload preview |
| Пользователь | Гости: история теряется | Предупреждение при закрытии; CTA «Сохранить в аккаунт» |
| Пользователь | Rate limit 300 Pro Search/день | 429 + предупреждение при 80%; предложение апгрейда |
| Инфраструктура | SearXNG — единый инстанс | Очередь запросов в search-svc; при росте — пул инстансов |
| Инфраструктура | cache-worker зависает | activeDeadlineSeconds во всех CronJob (5–20 мин) |
| Инфраструктура | Redis/PostgreSQL без HA | Sentinel/Cluster и Read replica при масштабировании |
| Инфраструктура | travel-svc без HPA | HPA 1–4 replicas добавлен в 02-k3s-microservices-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)
- 04-pages-logic-verification.md §9 — покрытие vs Perplexity 2026
- 06-roadmap-specification.md — roadmap и спеки фич
- 01-perplexity-analogue-design.md
- 02-k3s-microservices-spec.md
- 03-cache-and-precompute-strategy.md
- 04-pages-logic-verification.md