# 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](./04-pages-logic-verification.md#9-покрытие-фич-perplexity-20252026) — покрытие vs Perplexity 2026
- [06-roadmap-specification.md](./06-roadmap-specification.md) — roadmap и спеки фич
- [01-perplexity-analogue-design.md](./01-perplexity-analogue-design.md)
- [02-k3s-microservices-spec.md](./02-k3s-microservices-spec.md)
- [03-cache-and-precompute-strategy.md](./03-cache-and-precompute-strategy.md)
- [04-pages-logic-verification.md](./04-pages-logic-verification.md)
