Эксплуатация
Среды, наблюдаемость и восстановление
Требования к будущему production-контуру. Пороговые значения и дежурства не выдумываются: они должны быть согласованы. Портал не изображает работающий мониторинг.
Среды
Development
Локальная разработка, общее состояние, быстрые проверки.
Локальные тестовые значения.
Test
Симуляторы CSMS/платежей/кассы, интеграционные тесты.
Отдельные тестовые ключи.
Pilot
Физическая станция, ограниченная группа пользователей, приёмка.
Пилотные ключи и отдельный доступ.
Production
Рабочий сервис после решения D01–D11 и юридической проверки.
Секреты в защищённом хранилище, ротация.
Наблюдаемость
| Метрика | Единица | Источник | Порог / реакция |
|---|---|---|---|
| Доступность backend | % / минуты | Мониторинг | Порог и дежурство — открытая договорённость |
| Возраст последней телеметрии | секунды | MeterSample / CSMS | По порту и станции |
| Успешные Start/Stop | доля и длительность | Command | Рост тайм-аутов |
| Тайм-ауты CSMS | шт/мин | Адаптер CSMS | Порог не утверждён |
| Платежи в промежуточном статусе | шт и сумма | Payment | Очередь сверки |
| Повторные webhooks | шт | Webhook-журнал | Рост ошибок подписи |
| Зависшие holds и резервы | шт | SlotHold / WalletHold | Истечение и освобождение |
| Сессии без финальных показаний | шт | ChargingSession | Сверка |
| Очередь чеков и ошибки | шт | Receipt | Повтор и разбор |
| Расхождения журнала | шт | WalletEntry / операции | Финансовая сверка |
| Конфликты календаря | шт | Reservation | Расследование |
| Обращения без ответа | шт | SupportTicket | SLA поддержки |
Для каждой метрики нужно определить владельца, порог, окно и действие. Численные пороги, кроме явно приведённых в исходных ориентирах, — открытая эксплуатационная договорённость.
Структурированные логи
Обязательные поля
level, timestamp, service, environment, correlation ID, entity ID, event, safe error code.
Не логировать
OTP, токены, пароли, полные платёжные реквизиты и лишние персональные данные.
Корреляция
Один путь связывает пользователя, платёж, backend и CSMS.
Аудит ≠ лог
Аудит хранит изменения и причины; лог — техническое событие.
Пример безопасной записи (вымышленная)
{
"level": "warn",
"timestamp": "2026-10-24T09:14:03.120Z",
"service": "charging-api",
"environment": "test",
"correlationId": "corr-2409-sess-3001",
"entity": "ChargingSession",
"entityId": "SESS-3001",
"event": "command.timeout",
"code": "COMMAND_PENDING",
"durationMs": 15000
}Резервное копирование
Резервная копия
Регулярная копия PostgreSQL и конфигураций без секретов в незащищённом виде.
Восстановление
Проверяется на отдельной среде, а не только по наличию файла.
RPO/RTO
Требуют решения заказчика; портал не выдаёт их за утверждённые.
Проверка
Протокол восстановления и список обнаруженных ограничений.
Публикация и контент
Production build
Сборка Next.js, проверка прямых маршрутов и отсутствия утечки stack trace.
Кэширование
Статические документы и диаграммы могут кэшироваться; деньги и календарь — нет.
Индексация
Портал сейчас помечен noindex; для публичного размещения правило меняется осознанно.
Обновление контента
Правки в content-модулях, затем lint, typecheck, test и build.
Что остаётся открытым
Пороги и дежурства. Нужен владелец, окно реакции и процесс эскалации.
RPO/RTO. Нужен ответ заказчика и проверка восстановления.
SLA провайдеров. Комиссии, лимиты и доступность внешних сервисов.
Ответственные за публикацию. Apple/Google аккаунты, метаданные и модерация.
Какие метрики нужно собирать в реальной системе
Метрики и пороги на портале — проектное описание, а не живые показатели. В рабочей системе предстоит согласовать набор метрик: доступность API, время запуска и остановки зарядки, доля неуспешных оплат, задержка телеметрии, длина очереди чеков и возраст незакрытых инцидентов.