Ошибки под контролем: Hotel WD строит свою систему мониторинга в реальном времени
Путешественник нажал «Забронировать». Страница вернула что-то неожиданное. Он увидел странное диалоговое окно, закрыл вкладку и пошёл искать другой отель. Узнали ли вы об этом хоть когда-нибудь?
В большинстве отелей честный ответ — нет. Посетители редко заполняют форму обратной связи, почти не звонят на ресепшен и практически никогда не пишут письмо о том, что «почти сработало». Они просто закрывают вкладку. Через несколько недель собственник видит мягкое падение бронирований без видимой причины — но выручка к этому моменту уже потеряна.
В программной инженерии у этого явления есть имя: silent failure, тихий сбой. Это самый тихий враг любого сайта, работающего в масштабе.
На этой неделе мы начали встраивать Sentry в самое ядро Hotel WD. Каркас готов, развёртывание идёт. Цель проста: как только гость столкнётся с ошибкой в любой точке вашего сайта, мы хотим увидеть это раньше, чем вам — или гостю — придётся об этом сообщать.
Конвейер Sentry в реальном времени: приложение Hotel WD ловит исключение, Sentry обогащает его стек-трейсом и breadcrumbs, инженер получает оповещение в Slack.
Sentry — это платформа production observability, которой пользуются GitHub, Microsoft, Disney, Spotify и более 100 000 инженерных команд по всему миру. Основана в Сан-Франциско в 2012 году, имеет европейский регион данных в Германии — это критично для операторов, ответственно относящихся к GDPR.
Её единственная задача: ловить в реальном времени каждую ошибку и каждое падение производительности в работающем софте и доставлять их вместе с правильным контекстом тем инженерам, которые могут их исправить.
По мере завершения развёртывания частью этого конвейера станет каждый отель на Hotel WD. Вам не нужно ничего устанавливать, настраивать или оплачивать дополнительно — всё происходит за кулисами.
Старый мир. На вашем сайте что-то ломалось. Гость закрывал вкладку. Очередное бронирование терялось. В месячном отчёте появлялась «слабость» в продажах; причина оставалась невидимой. Урон был тихим и накопительным.
Новый мир. На вашем сайте что-то ломается. Конвейер мониторинга записывает это — точную ошибку, точную строку кода, маршрут гостя до сбоя и устройство, которым он пользовался, — и выводит нам на экран. Именно этот контекст позволяет выпустить исправление быстро, а не после недель гаданий. Цель: перехватить провал до того, как он вообще проявится в вашем месячном отчёте.
Так Amazon, Booking и Airbnb работают уже годами. Мы перенесли ту же операционную дисциплину на масштаб одного отеля.
В тот самый момент, когда на вашем сайте бросается исключение, Sentry собирает:
Вам не нужно читать ничего из этого. Это читают наши инженеры. Вы получаете результат: ваш сайт продолжает работать.
Одного Sentry недостаточно — вокруг него должна работать вся инфраструктура. Остальные изменения этой недели:
1. Перехват ошибок в нескольких рантаймах
SDK @sentry/nextjs встроен в ядро Hotel WD с раздельными каналами для серверного рантайма Node.js, edge-рантайма и браузера. Персональные данные (PII) по умолчанию не отправляются — в Sentry уходят только обезличенные трейсы ошибок и технический контекст. Соответствует GDPR, готово к комплаенс-аудитам в гостиничной отрасли.
2. Эндпоинт проверки здоровья (/api/health)
Новый эндпоинт каждую секунду проверяет, что приложение живо. Если PostgreSQL отвечает — возвращается 200 OK; если нет — 503 Degraded. Это позволяет:
3. Согласованность кэша (синхронизация TTL с Cloudflare)
Разрыв TTL между edge-кэшем Cloudflare и внутренним кэшем Next.js устранён. В худшем теоретическом сценарии цена могла оставаться устаревшей до семи дней; теперь это окно сокращено до 24 часов. Обновления цен и доступности номеров распространяются в пределах суток — каждый раз.
4. Исправление Cumulative Layout Shift
Наш баннер согласия на cookies «всплывал» при загрузке — это тонкая, но реальная причина смещения вёрстки, которую Google PageSpeed штрафует, а поисковое ранжирование, как следствие, понижает. Баннер переписан так, что присутствует в DOM с первого кадра и появляется только через прозрачность. Layout shift с измеримого уровня сведён к нулю.
5. Гигиена пайплайна сборки (Docker)
Контекст production-сборки Docker сжался с примерно 600 МБ до 37 МБ. Деплои быстрее на 1–2 минуты, расход полосы пропускания на сервере ниже. Контейнер также выполняет собственную директиву HEALTHCHECK каждые 30 секунд.
6. Защита от параллельных деплоев
Гонка позволяла двум деплоям GitHub Actions стартовать одновременно. Закрыли через concurrency-группу.
Технических подробностей выше знать необязательно. Но если вы работаете на Hotel WD, вам стоит знать, что всё это применяется в ваших интересах.
Коммерческое обещание Hotel WD сводится к одной фразе:
«Не занимайтесь технической стороной отельерства — этим займёмся мы.»
Это обещание невозможно выполнить одним лишь хорошим дизайном страниц. Оно должно держаться, когда страница уходит в продакшен, когда срабатывает ошибка, когда растёт задержка, когда обновляются цены, когда проводится платёж. Инженерная дисциплина на каждом уровне — единственный способ.
Инфраструктурный слой, выпущенный на этой неделе, — это конкретный шаг от «персонального сайта одного отельера» к SaaS корпоративного класса.
/api/health каждую секунду| Область | Раньше | Новый стандарт Hotel WD | Что это значит для вас |
|---|---|---|---|
| Время обнаружения сбоя | Часы или дни | Автоматическая фиксация в момент сбоя | Цель: увидеть раньше, чем вам придётся сообщать |
| Контекст сбоя | «Что-то сломалось» | Стек-трейс + браузер + след кликов | Исправления бьют в настоящую причину, а не в догадки |
| Тихие сбои | Невидимые потери | Фиксируются и видны нам | Месячные отчёты становятся честными |
| Health-check | Нет | /api/health каждую секунду | Автоматическое восстановление |
| Согласованность кэша | До 7 дней устаревания | Не более 24 часов | Цены и наличие — свежие |
| CLS (PageSpeed) | Штраф за смещение | Нулевое смещение | Преимущество в SEO |
| Размер сборки | ~600 МБ | 37 МБ | Быстрее деплои, меньше окно ошибок |
То, что выпущено на этой неделе, — это стартовая черта, а не финиш. На очереди:
Дорожная карта Hotel WD реализуется с уровнем прозрачности, нечастым на рынке отельного ПО.
Когда гость заходит на ваш сайт, мы не хотим, чтобы он задумывался, всё ли работает. Мы хотим, чтобы он бронировал, не успев задать себе этот вопрос.
Чтобы туда прийти, нужно быть уверенными, что всё действительно работает. А быть уверенными — значит измерять. Каждую секунду. В продакшене.
Sentry — один из фундаментальных слоёв, который даёт эту уверенность. С этой недели — часть ядра Hotel WD. Другие слои уже в пути.
Свяжитесь с Hotel WD и переведите свой отель на инженерную платформу →
I have been working in the digital field since 1999. I still hold the position of Digital Marketing Manager at Türk SEM. I have also been involved in tourism-related activities since 2005.
