- 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>
109 lines
5.5 KiB
Markdown
109 lines
5.5 KiB
Markdown
# 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)
|