AACsearch
Эксплуатация

Эксплуатация

Запуск AACsearch в проде — реиндекс, мониторинг, лимиты, инциденты, эскалация саппорту.

Эксплуатация

Этот раздел — для оператора на смене. Если интегрируете AACsearch из приложения — вероятно, вам нужны Search API или SDKs. Если что-то горит — сразу в Troubleshooting.

С чего начать

Если нужно…Идите в
Понять, что меняется при реиндексеРеиндексирование
Узнать, здоров ли AACsearch прямо сейчасСтатус и инциденты
Что мы бэкапим и как восстановитьБэкапы и retention
Подключить метрики AACsearch к своему observabilityМониторинг
Понять 429 и заранее заложить запасЛимиты и квоты
Диагностировать конкретный сбойTroubleshooting
Открыть тикет, который не отскочит обратноЭскалация саппорту

Операционная модель одной схемой

┌──────────────────────────────────────────────────────────────────────────┐
│                              CLIENT EDGE                                  │
│  Браузер / мобайл / коннектор  ──►  search.aacsearch.com (Hono + oRPC)   │
└──────────────────────────────────────────────────────────────────────────┘

        ┌─────────────────────────┼──────────────────────────┐
        ▼                         ▼                          ▼
   AUTH & RATE LIMIT       INGEST BUFFER             SEARCH CLUSTER
   - хэш ключа             - очередь в PostgreSQL    - Typesense
   - проверка Origin       - воркер флашит           - алиасы версий
   - бакет на ключ         - retry на ошибке         - alias-swap reindex
        │                         │                          │
        └──── audit log ──────────┴──── analytics ───────────┘

                            POSTGRESQL (регион хранения)


                            BACKUPS (WAL-G → S3, encrypted)

Три вещи запомнить:

  1. Записи не идут напрямую в движок. Публичные записи попадают в SearchIngestBuffer в PostgreSQL. Воркер забирает и флашит в Typesense. Если Typesense недоступен — строка остаётся с failedAt и ретраится. Это Инвариант 2 — см. agents.md.

  2. Реиндекс — alias-swap, не in-place. Создаём новую физическую коллекцию (org_abc__products__v4), наполняем и атомарно переключаем алиас. Половинного индекса не видит ни один запрос. См. Реиндексирование.

  3. Rate limit на ключ, не на IP. 429 — это переполнение бакета ключа, не вашего IP. См. Лимиты.

SLO

SLO общего кластера — 99.9 % доступность поисковых запросов в календарный месяц, по синтетическим probes минимум из трёх географий на регион. PostgreSQL бэкапим непрерывно (WAL-G), Typesense — снапшоты каждые 6 часов. Цель RTO — 1 час, RPO — 15 минут.

Enterprise-клиенты согласовывают более жёсткие SLO под выделенный кластер — см. Dedicated cluster.

Двухминутный health-check

До открытия тикета прогоните цикл:

  1. Откройте status.aacsearch.com — есть инцидент по вашему региону?
  2. В дашборде Project → Indexes: значки health — зелёные/жёлтые/красные? Жёлтый = лаг ingest или error-rate выше порога; красный = drift > 5 %. См. Мониторинг.
  3. Dashboard → Diagnostics: последний flush несёт ошибку?
  4. Если на нашей стороне всё чисто — снимите request id из своих логов и откройте тикет по эскалации.

Этот цикл закрывает большинство тикетов без ожидания обеих сторон.

См. также

  • DR runbook — процедура восстановления нашей инфраструктуры
  • Обзор безопасности — контроли, на которые ссылается этот раздел
  • Enterprise — когда нужен кастомный SLA или выделенная инфраструктура

On this page