Как мы проверяли интеграции ГосТех: зондирующие запросы
Когда мы строили обмен данными между системой ГосТех и ФГИС СЦ МинЦифры, мы понимали, что недостаточно один раз настроить интеграцию. Нужно постоянно проверять, что она работает корректно, а не просто отвечает на ping.
Мы внедрили зондирующие запросы. Это не просто проверка "жив/мёртв". Это полноценная имитация пользовательского сценария: запрос проходит через все этапы обработки, включая форматный и логический контроль. Одна сторона (контролирующая) отправляет специальный запрос, помеченный как "зондирующий". Другая сторона (подконтрольная) обрабатывает его так же, как реальное обращение пользователя, но без изменения данных и возвращает тестовый ответ. Если ответ не получен в течение заданного времени (60 секунд) или содержит ошибку, система автоматически регистрирует инцидент.
Правила, при которых мы считали интеграцию "нерабочей": 1. отсутствие ответа в течение 60 секунд; 2. ошибки при передаче вложений (размер, формат); 3. дублирование событий; 4. отсутствие обязательных метаданных; 5. ошибки из-за спецсимволов в теме или описании; 6. некорректная генерация события обмена.
Плановые работы: Если мы знаем, что на той стороне будут технические работы, мы заранее передавали расписание (за 72 часа). Система сверяла сбой с расписанием, и если совпадает, "ложный" инцидент не создавался. А если уведомление не пришло, тогда система создавала инцидент, но мы всегда могли вручную привязать его к плановым работам постфактум.
Цель: Когда у вас десятки интеграций и тысячи обращений в день, ждать, пока кто-то заметит сбой, непозволительно. Мы сделали так, что система сама проверяла себя и сигнализировала о проблеме в первые минуты. Это особенно важно в государственных проектах, где надёжность - это не просто пожелание, а жёсткое требование.
Мы перестали гадать, работает интеграция или нет. Мы просто знаем.