Розробка Status Page для SaaS: моніторинг і сповіщення

Клієнти дізнаються про збій від колег раніше, ніж від вас, а підтримка тоне в однотипних зверненнях. Ми розробляємо status page під ключ: розбираємо сервіси, налаштовуємо моніторинг і сповіщення, передаємо регламенти чергування. Час оповіщення про інцидент скорочується в рази, а потік повторних звернень падає.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка Status Page для SaaS: моніторинг і сповіщення
Простий
від 1 дня до 3 днів
Часті запитання

Сторінка статусу, яка не бреше: де губляться інциденти

Частина сервісів деградує — зростає час відповіді, зупиняються фонові завдання, частина користувачів не може увійти.

Черговий інженер це вже бачить за графіками, а публічного повідомлення все немає: воно з'явиться за пів години, коли підтримка збере перші звернення і хтось вручну оновить сторінку. Між «ми знаємо» і «клієнт знає» зяє вікно, і саме в ньому народжується недовіра.

Типова причина — сторінка статусу живе окремо від моніторингу доступності. Перевірки йдуть зсередини того самого контуру, що й сам сервіс, тому відмова зовнішньої точки входу або проблеми на боці клієнта в них не відображаються.

Додайте ручний режим публікації: поки інцидент не підтверджений черговим, про нього не повідомляють нікому, а підтвердження легко відкладається до ранку.

Втрата інцидентів відбувається на стику змін. Перевірка спрацювала, повідомлення пішло в черговий чат — але не в публічний канал; контекст не передали, і наступний інженер розбирається заново.

Клієнти дізнаються про збій з власних помилок і пишуть у підтримку раніше, ніж ми визнаємо проблему. Видимість відмов у такі години падає до нуля, хоча потрібна саме тоді, коли навантаження на першу лінію максимальне.

Правильно зібрана сторінка статусу — не вітрина, а частина контуру оповіщення: зовнішні перевірки, автоматичний перехід статусу за порогами помилок і затримок, повідомлення клієнтам до того, як вони самі помітять збій. Розбираємо, як це закривається.

Ефекти впровадження: час реакції та потік звернень

Ефект від сторінки статусу видно не в інтерфейсі, а у двох величинах: як швидко клієнт дізнається про збій і скільки заявок при цьому надходить у підтримку.

Обидві знімаємо до запуску — за журналом звернень і записами чергувань — і повторюємо через місяць роботи, щоб порівняння було на одних даних, а не на відчуттях.

Структура сторінки при цьому не вигадується: компоненти, шаблони інцидентів і підписка повторюють те, що закріпив Atlassian Statuspage, тому клієнту не потрібно пояснювати, як читати статус.

Показник Як рахуємо Що змінюється
Час реакції на інцидент від спрацювання перевірки до публічного запису черговий публікує статус за шаблоном, а не вигадує текст
Потік звернень у підтримку частка заявок «у вас усе лежить?» у перші хвилини питання йдуть у підписку на оновлення, а не на першу лінію
Час відновлення від відкриття інциденту до переведення в «працює» у клієнта є орієнтир, команда не витрачає сили на роз'яснення
Прозорість статусу сервісу частка збоїв, відображених на сторінці історія інцидентів залишається публічною і не чиститься

Приймання йде за чек-лістом, а не за зовнішнім виглядом сторінки:

  • повідомлення формується автоматично при спрацюванні перевірки, без ручного кроку чергового;
  • закриття інциденту обов'язкове, інакше статус не повернеться в робочий стан;
  • підписка доставляє оновлення поштою і в месенджер, включно з відпискою;
  • порядок публікації зафіксований у регламенті чергувань і в шаблонах повідомлень.

Головний результат — зникає цілий клас відмов, про які раніше дізнавалися від клієнтів. Перший сигнал надходить від моніторингу, а не з листа із питанням «у вас усе працює?», і шлях від збою до публічного повідомлення вкладається в хвилини.

Формати сторінки статусу: публічний, закритий і внутрішній

Публічна сторінка статусу — це контур, який бачать клієнти і служба підтримки. Закрита сторінка статусу відкривається за запрошенням або через вхід в акаунт: там видно конкретні компоненти замовника й історію за його сегментом.

Внутрішня панель чергового — робочий інструмент команди, і вона показує помітно більше, ніж припустимо показувати назовні.

Вибір формату визначається не зручністю верстки, а тим, які дані можна розкривати і хто ухвалює рішення щодо інциденту. Нижче — три варіанти, між якими реально обирають.

Варіант Коли підходить Обмеження
Публічна сторінка статусу Клієнти й партнери мають бачити доступність сервісу без входу Лише агреговані компоненти, без деталей щодо окремого клієнта; публікація зсувається, поки текст узгоджують
Закрита сторінка статусу Великі клієнти з договірними зобов'язаннями щодо доступності Потрібно видавати й відкликати доступи; частина стану все одно залишається закритою
Внутрішня панель чергового Передача зміни, розбір інциденту, контроль деградацій Не розрахована на зовнішніх читачів; потрібні ролі та журнал дій

Публічний і внутрішній контури не замінюють один одного: назовні йдуть підтверджені факти, усередину — сирі метрики й хід робіт.

Підписка на повідомлення налаштовується окремо для кожного контуру — клієнти отримують повідомлення за своїми компонентами, черговий за порогами спрацювання, щоб оповіщення не дублювалися в загальний канал.

Етапи впровадження: від розбору сервісів до передачі регламентів

Впровадження моніторингу починається не з налаштування повідомлень, а з інвентаризації: які сервіси обслуговують продукт, хто за них відповідає і від чого кожен залежить.

Без цієї картини сторінка статусу перетворюється на перелік кнопок — при збої незрозуміло, що саме зачеплено і кого піднімати. Тому перші етапи в нас про схему, а не про інструменти.

  1. Інвентаризація сервісів і залежностей — збираємо компоненти, зовнішні інтеграції, черги й сховища, відзначаємо власників і ймовірні точки відмови.
  2. Схема сервісів і залежностей — будуємо граф зв'язків: падіння якого вузла на що впливає і як це відображається в користувацьких сценаріях.
  3. Налаштування перевірок — задаємо типи проб для кожного компонента, пороги спрацювання та інтервали, щоб не ловити шум від коротких відхилень.
  4. Регламент оповіщень — розподіляємо, хто і в якому вікні отримує повідомлення, які події публікуються на сторінці і як оновлюється статус у ході інциденту.
  5. Складання публічної сторінки — виводимо лише значущі для клієнта компоненти й пов'язуємо їх із внутрішньою схемою, щоб статус збігався з реальністю.
  6. Перевірка на навчальному інциденті — імітуємо відмову й проганяємо весь шлях: спрацювання, оповіщення, публікація, закриття. Видно, де губиться час.
  7. Передача — віддаємо доступи, документацію та регламенти, чергова зміна працює за ними без нашої участі.

Артефакти впровадження: схеми сервісів, шаблони та регламенти

Впровадження сторінки статусу закінчується не публікацією першої сторінки, а передачею комплекту документів.

Без нього через місяць ніхто не згадає, чому одні сервіси розведені в різні компоненти, хто має право зняти банер і яким формулюванням відкривати перше оновлення за інцидентом. Комплект збирається в ході робіт і залишається в команди замовника.

  • Карта сервісів і опис компонентів — які зовнішні залежності бачить клієнт, як вони пов'язані і який компонент вважається зачепленим при збої в суміжному сервісі. Карта правиться за кожної нової інтеграції, інакше статус починає показувати неіснуючі зв'язки.
  • Шаблони повідомлень — заготовки для чотирьох станів: планові роботи, деградація, часткова й повна відмова. У кожному — три частини: що зачеплено, що робити користувачу, коли чекати наступне оновлення.
  • Регламент чергування — хто першим підтверджує інцидент, у які години, як передає зміну і за якою позначкою часу вважається строк реакції.
  • Порядок ескалації — рівні підйому від чергового до власника сервісу й технічного керівника, з ознаками, за якими рівень підвищується без очікування.
  • Документація щодо інцидентів — єдиний формат запису: час виявлення, зачеплені компоненти, опубліковані оновлення, причина, дії з усунення. За нею відновлюють хронологію і правлять шаблони.
  • Правила доступу до статусу — ролі з різними правами: читання, публікація оновлень, керування компонентами, налаштування підписок. Права видаються на групу, а не персонально, щоб черговий не залишився без доступу на вихідних.
  • Інструкція для чергового — покроковий порядок від отримання сигналу до закриття інциденту: де дивитися стан сервісів, який шаблон вибрати, що перевірити перед публікацією.

Комплект лежить поруч із кодом сторінки і оновлюється разом із ним — тоді статус залишається достовірним джерелом, а не архівом минулих релізів.

Кейс: як скоротили час оповіщення про інциденти

Клієнт — SaaS-сервіс із високою частотою звернень: у пікові вікна кілька тисяч активних сесій, і деградація зовнішньої залежності відразу перетворюється на потік листів у підтримку.

До проєкту про збій дізнавалися зі скарг — у середньому через 12 хвилин після початку, ще стільки ж ішло на ручну розсилку.

Навантаження на чергового зростало разом із частотою інцидентів: понад сотня ручних повідомлень за тиждень — у чат, на пошту, на сторінку статусів (status page). Історію інцидентів вели в листуванні, хронологію для розбору відновлювали вручну.

Що змінили

Розділили контури: сторінка статусів, панель керування, сервіс перевірок і розсилка живуть окремо від основного застосунку і залишаються доступними, коли сам продукт недоступний.

Зовнішні перевірки на UptimeRobot і внутрішні метрики зведені в один шар, який сам відкриває й закриває інцидент за правилами: підтвердження — оновлення — відновлення.

Автоматичні повідомлення йдуть у канали клієнтів одразу після зміни статусу, шаблони й тон задані заздалегідь. Журнал інцидентів зберігає позначки часу, причину й тривалість — розбори збираються з фактів, а не з пам'яті чергового.

За підсумками: час оповіщення скоротився з 12 хвилин до 80 секунд, близько 90% публікацій іде автоматично, ручних розсилок майже не залишилося. При повторі збою клієнти бачили статус раніше, ніж у підтримку надходило перше звернення.

Чим відрізняється сторінка статусу для клієнта від панелі чергового?

Публічна сторінка статусу і панель чергового спираються на одну модель компонентів, але вирішують різні завдання: перша знімає потік однотипних звернень у підтримку, друга прискорює локалізацію відмови. Назовні йде стан і користувацький ефект, усередину — метрики, логи та зв'язки між сервісами.

Клієнт бачить перелік компонентів, їхній стан, історію інцидентів і підписку на оновлення. Формулювання тримаємо на рівні ефекту: «підвищений час відгуку в особистому кабінеті» замість «деградація вузла бази даних».

Імена внутрішніх сервісів і адреси вузлів у публічний текст не потрапляють — за ними відновлюють архітектуру.

Панель чергового працює з тією самою картою компонентів, але поруч лежать графіки, події систем спостереження і прив'язка оповіщень до сервісу. Черговий бачить, що саме деградувало і кого це зачіпає, і готує чернетку публікації, не перемикаючись між інструментами.

Рівні доступу розділені: у клієнта лише перегляд і підписка, у чергового — редагування станів, у керівника зміни — підтвердження публікації та ескалація. Кожна зміна потрапляє в журнал: видно, хто і коли підняв або зняв інцидент.

Деталізація повідомлень теж різна: клієнт підписується на конкретні компоненти й канали і отримує повідомлення після підтвердження інциденту — так відсікаються розсилки за короткочасними сплесками. Планові роботи йдуть заздалегідь за окремим шаблоном і не змішуються з аварійними.

Технічні заперечення: хибні сигнали та закритий контур

Сумніви на старті майже завжди ті самі — не про зовнішній вигляд сторінки, а про її поведінку в момент реальної аварії.

Оповіщення надходитимуть постійно — черговий перестане на них реагувати?

Поріг і частота оповіщень задаються за тривалістю, а не за одиничною відмовою: перевірка має провалитися кілька разів підряд з різних точок спостереження. Так хибні спрацювання не піднімають чергового, а в публікацію йде лише стійка деградація.

А якщо відмовить сам канал зв'язку, через який сторінка отримує дані?

Розміщуємо сторінку поза основним контуром і тримаємо статичний знімок останнього стану: якщо збирання даних недоступне, відвідувач бачить час оновлення, а не порожній екран.

Чи не розкриємо ми внутрішній устрій системи?

Публікація залишається закритим контуром: виносимо лише зовнішньо спостережувані симптоми і вплив на сервіс — що недоступно і для кого. Назви внутрішніх компонентів і причини відмови залишаються у внутрішньому розборі.

Чи можна оновити історію інцидентів заднім числом?

Хронологія ведеться як журнал: запис фіксується з позначкою часу, а уточнення додається новим рядком, не перезаписом старого. Постмортем залишається перевіряним.

Що буде, коли ви передасте проєкт іншій команді?

Підтримка сторінки статусу — це регламент чергувань, каталог перевірок, шаблони повідомлень і доступи. Передаємо їх документацією, а не «в голові інженера».

Обговоримо завдання: з чого починається впровадження

Розмову починаємо з розбору сервісів: що вже віддає метрики, які зовнішні залежності критичні, хто з команд має отримувати повідомлення при деградації.

Від цього залежить склад перевірок і модель компонентів публічної сторінки статусу — без такого розбору будь-яка оцінка буде навмання.

Що увійде в перший розбір:

  • карта сервісів і залежностей: що вважаємо деградацією, що плановою роботою, що взагалі не показуємо назовні;
  • перелік перевірок і порогів — доступність сервісів та їхніх інтерфейсів, час відповіді, частка помилок, свіжість черг обробки;
  • сценарії повідомлень: хто, за якою подією і в якому каналі отримує повідомлення, як влаштована ескалація за часом;
  • структура компонентів сторінки і правила публікації інцидентів: що бачить клієнт, що залишається у внутрішньому контурі;
  • модель доступів і розмежування ролей — хто готує запис, хто підтверджує публікацію, як ведеться аудит змін;
  • режими відкату: як швидко повертаємо конфігурацію до попереднього стану, якщо оновлення дало збій;
  • список зачеплених інтеграцій, щоб перехід пройшов без простою для користувачів.

З вашого боку знадобиться перелік сервісів, поточні схеми моніторингу і контакт відповідального за інфраструктуру. Після розбору повертаємося з оцінкою і планом робіт: етапи, склад перевірок, що закриваємо своїми силами і на якому кроці підключаємо вашу команду.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060