«Покласти прод» — сленговий вислів, що означає внесення змін, які викликають збій на продакшен-сервері та роблять застосунок недоступним для користувачів. За даними звіту AWS DevOps 2024, близько 65% команд хоча б раз стикалися з інцидентом на проді, спричиненим людським фактором. Простий продакшену безпосередньо впливає на бізнес-метрики та потребує негайної реакції команди.
Головне
Покласти прод — це неформальне позначення ситуації, коли застосунок на продакшен-середовищі перестає працювати коректно. На відміну від тестового або staging-середовища, продакшен обслуговує реальних користувачів, тому будь-який збій має критичне значення для бізнесу.
Вислів «покласти прод» може означати різні ступені серйозності: від часткової деградації функціональності до повної недоступності сервісу. У термінології ITIL це класифікується як інцидент (incident) — незаплановане переривання або зниження якості послуги. Чим вища критичність сервісу, тим швидше команда має реагувати.
Сучасні практики DevOps спрямовані на мінімізацію наслідків від падінь продакшену. Інструменти на кшталт Datadog, New Relic та Sentry дозволяють відстежувати стан продакшену в реальному часі та автоматично сповіщати команду про аномалії.
# Quick rollback to previous version
kubectl rollout undo deployment/api-server
# Check deployment status
kubectl rollout status deployment/api-server
# View recent logs for error analysis
kubectl logs deployment/api-server --tail=100 --since=10m
Цей приклад показує типові команди для відкату деплою в Kubernetes. Швидкий відкат — перший крок при виявленні проблеми на проді, що дозволяє відновити працездатність сервісу за хвилини.
Аналіз більш ніж 500 інцидентів на продакшені, проведений Stripe у 2023 році, виявив ключові категорії причин. Розподіл інцидентів відображає типові слабкі місця в процесах розробки та деплою.
| Причина | Опис | Частка |
|---|---|---|
| Помилки деплою | некоректна версія, невірні змінні середовища | 32% |
| Проблеми з БД | зламана міграція, блокування таблиць | 25% |
| Навантаження | неочікуване зростання трафіку, витік пам'яті | 18% |
| Конфігурація | невірні флаги, видалені секрети | 15% |
| Зовнішні сервіси | відмова API, проблеми з DNS або CDN | 10% |
Помилки деплою становлять майже третину всіх інцидентів. Найчастіше це відбувається, коли зміни деплояться вручну без належної перевірки. Автоматизація деплою через CI/CD пайплайни з багатоступеневою перевіркою значно знижує ризик падіння продакшену.
Окремої уваги заслуговують проблеми з міграціями бази даних. Некоректна міграція може не тільки покласти прод, але й призвести до безповоротної втрати даних. Саме тому міграції запускаються в окремому кроці пайплайну з обов'язковим бекапом перед виконанням.
Падіння продакшену — це не тільки технічна проблема, але й бізнес-інцидент. Кожна хвилина простою обходиться компанії в певну суму, яка залежить від характеру сервісу. Для e-commerce платформ вартість години простою може сягати сотень тисяч доларів.
Дослідження Gartner 2024 показує, що середня вартість хвилини простою enterprise-застосунків становить 5600 доларів. При цьому середній час відновлення після інциденту на проді — близько 90 хвилин. Простий у 90 хвилин обходиться бізнесу більш ніж у півмільйона доларів.
Окрім фінансових втрат, падіння продакшену завдає шкоди репутації компанії. Користувачі, які зіткнулися з недоступністю сервісу, можуть піти до конкурентів. Особливо критичні інциденти для банківських та медичних застосунків, де надійність — ключова вимога.
Для команди наслідки також суттєві. Після інциденту на проді проводиться postmortem — аналіз кореневих причин та розробка заходів запобігання. Це накладає додаткове навантаження на розробників, особливо чергових інженерів (on-call).
Запобігання падінню продакшену будується на кількох рівнях захисту. Кожен рівень перехоплює певний клас помилок, не допускаючи їх до кінцевих користувачів.
Feature flags — один із найефективніших інструментів запобігання падінням. Дозволяє викатити код на прод у неактивному стані, увімкнути для обмеженої групи користувачів та швидко вимкнути при виявленні проблеми. Платформи на кшталт LaunchDarkly та Split.io надають готові рішення для керування флагами.
Моніторинг та алертинг — завершальний рівень захисту. Інструменти на кшталт Prometheus + Grafana або Datadog збирають метрики з продакшену: latency, error rate, throughput. При перевищенні порогів спрацьовує алерт, і черговий інженер отримує сповіщення. Чим швидше команда дізнається про проблему, тим менше збитків від інциденту.
Коли падіння продакшену вже сталося, головний пріоритет — відновити працездатність сервісу. Аналіз причин проводиться після стабілізації. Типовий процес реагування включає наступні кроки.
Перший крок — визначити масштаб інциденту. Чи повністю недоступний сервіс чи деградувала лише частина функціональності? Скільки користувачів зачеплено? Відповіді на ці питання визначають рівень критичності та необхідні дії.
Другий крок — відкат змін. Якщо інцидент пов'язаний з нещодавнім деплоєм, найшвидший спосіб відновлення — повернути попередню стабільну версію. Для цього використовується команда git revert та повторний деплой попереднього артефакту. Відкат має займати не більше 10–15 хвилин.
Третій крок — комунікація. Сповістити команду, керівництво та, за необхідності, користувачів про проблему та терміни відновлення. Для цього використовуються status page сервіси на кшталт Atlassian Statuspage та канали в Slack або Telegram.
Четвертий крок — postmortem. Після відновлення проводиться аналіз кореневих причин (RCA) та розробляються заходи запобігання повторенню інциденту. Результати postmortem документуються та стають частиною бази знань команди.
Часті запитання
Це сленговий вислів, що означає внесення змін, які викликали збій на продакшен-сервері. В результаті сервіс стає недоступним або працює некоректно для користувачів. Термін використовується в DevOps-культурі для позначення критичного інциденту.
Найчастіша причина — помилки деплою: невірні змінні середовища, неправильна версія артефакту або відсутні залежності. На другому місці — проблеми з міграціями бази даних. Третя за частотою — навантажувальні збої, коли застосунок не витримує піковий трафік.
Для критичних сервісів час реакції має становити не більше 5 хвилин, відновлення — не більше 60 хвилин (SLA). Для менш критичних систем допускається до 4 годин. Конкретні метрики фіксуються в Service Level Agreement (SLA) та Service Level Objectives (SLO).
Crash — повна недоступність сервісу, коли користувачі отримують помилки 500 або з'єднання не встановлюється. Помилкова поведінка — сервіс працює, але дані некоректні або функціональність порушена. Crash потребує негайного відкату, помилкова поведінка може бути виправлена гарячим фіксом.
Postmortem включає: хронологію подій, кореневу причину (RCA), масштаб інциденту, дії з відновлення та план запобігання. Важливо описувати факти без звинувачень — у рамках blameless culture. Результати публікуються для всієї команди.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також