Ошибки под контролем: система мониторинга в реальном времени 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 теперь — часть этого конвейера. Вам не нужно ничего устанавливать, настраивать или оплачивать дополнительно. На стороне Hotel WD наша команда наблюдает за вашим сайтом непрерывно.
Старый мир. На вашем сайте что-то ломалось. Гость закрывал вкладку. Очередное бронирование терялось. В месячном отчёте появлялась «слабость» в продажах; причина оставалась невидимой. Урон был тихим и накопительным.
Новый мир. На вашем сайте что-то ломается. За 30 секунд наша инженерная команда уже в курсе — с точной ошибкой, точной строкой кода, маршрутом гостя до сбоя и устройством, которым он пользовался. Большинство случаев чиним за 30 минут — до того как они затронут больше одного посетителя. В вашем месячном отчёте провала не видно, потому что провала и не случилось.
Так 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 корпоративного класса.
| Область | Раньше | Новый стандарт Hotel WD | Что это значит для вас |
|---|---|---|---|
| Время обнаружения сбоя | Часы или дни | 30 секунд | Инженеры реагируют до того, как гость перезагрузит страницу |
| Контекст сбоя | «Что-то сломалось» | Стек-трейс + браузер + след кликов | Большинство правок выходят за 30 минут |
| Тихие сбои | Невидимые потери | Ноль невидимых ошибок | Месячные отчёты честны |
| 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.
