Реалізація Status Page (публічна сторінка статусу) для сервісу

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

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

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація Status Page (публічна сторінка статусу) для сервісу
Середня
~2-3 робочих дні
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація Status Page (публічна сторінка статусу) для сервісу

Status Page — це публічна сторінка, де користувачі бачать поточний стан сервісу та історію інцидентів. Без неї при сбою підтримку заваляють тікетами «у мене не працює», Twitter — гнівними постами, а команда витрачає час на комунікацію замість відновлення.

Що повинна містити Status Page

Поточний статус компонентів. Кожен ключовий компонент відображається окремо:

  • Основний додаток / сайт
  • API
  • Авторизація
  • Платіжна система
  • CDN / файлове сховище
  • Email-розсилки

Статусами: Operational, Degraded Performance, Partial Outage, Major Outage, Under Maintenance.

Історія доступності. Графік uptime за останні 90 днів — класичні «зелені квадратики» по днях.

Активні інциденти. Якщо щось зламане — інцидент з хронологією оновлень.

Плановані технічні роботи. Попереднє сповіщення про maintenance window.

Підписка на оновлення. Email, Slack, webhook — користувач вибирає канал.

Варіанти реалізації

Statuspage.io (Atlassian) — лідер ринку. Інтеграція з PagerDuty, Datadog, Jira. Автоматичне оновлення статусу за метриками. Публічні та приватні сторінки. Від $79/місяць.

Cachet — open source, self-hosted. PHP + MySQL/PostgreSQL. Повний контроль, без щомісячної плати. Інтеграція через API. Підходить, якщо потрібен кастомний домен та брендинг.

Instatus — сучасна альтернатива. Швидший UI, конкурентна ціна.

Self-built на статичному сайті — мініималістичний варіант: GitHub Pages + YAML-файл зі статусами + GitHub Actions оновлює сторінку. Підходить для невеликих проектів.

Автоматичне оновлення статусів

Status Page без автоматизації — це сторінка, яку забувають оновити під час інцидента (коли оновлення найважливіше).

Інтеграція Datadog → Statuspage.io:

import requests

def update_status_page(component_id: str, status: str):
    # status: operational | degraded_performance | partial_outage | major_outage
    requests.patch(
        f"https://api.statuspage.io/v1/pages/{PAGE_ID}/components/{component_id}",
        headers={"Authorization": f"OAuth {API_KEY}"},
        json={"component": {"status": status}}
    )

# Викликається з Datadog webhook при срабатуванні alert
def on_alert_triggered(alert_data):
    component = map_alert_to_component(alert_data["alert_title"])
    update_status_page(component["id"], "major_outage")

Prometheus Alertmanager → webhook → скрипт оновлення → Status Page API.

Правило: оновлення статусу повинно відбуватися автоматично протягом 2-3 хвилин після виявлення проблеми, а не через 20 хвилин коли хтось пригадає.

Робота з інцидентами на Status Page

Структура інцидента:

  1. Investigating — проблема зафіксована, йде розслідування
  2. Identified — причина знайдена, працюємо над усуненням
  3. Monitoring — виправлення застосовано, спостерігаємо за стабілізацією
  4. Resolved — інцидент закритий

Оновлення кожні 20-30 хвилин під час активного інцидента. Користувачі знають, що про них пам'ятають.

Технічні деталі self-hosted Cachet

# docker-compose.yml
services:
  cachet:
    image: cachethq/docker:latest
    environment:
      APP_ENV: production
      APP_KEY: ${APP_KEY}
      DB_DRIVER: pgsql
      DB_HOST: db
      DB_DATABASE: cachet
    ports:
      - "80:8000"
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: cachet
      POSTGRES_PASSWORD: ${DB_PASSWORD}

Nginx reverse proxy з SSL (Let's Encrypt). Кастомний домен типу status.yourdomain.com.

Терміни реалізації

  • Statuspage.io / Instatus (managed) — 1-2 дні налаштування
  • Cachet self-hosted — 2-3 дні
  • Автоматичне оновлення з мониторингу — 1-2 дні
  • Інтеграція з інцидент-менеджментом — 1 день