Что значит «готово к продакшну»: определение вместо ощущения
Готово к продакшну — это не ощущение, а шесть проверяемых свойств: безопасность, сохранность данных, наблюдаемость, восстановление, скорость и поддержка.
«Готово к продакшну» значит, что приложение может работать с настоящими пользователями и их данными без постоянного присмотра автора: оно не отдаёт чужое, не теряет сохранённое, сообщает о своих поломках и переживает их. Это не про количество фич, а про то, что происходит, когда что-то идёт не так.
Проблема в том, что фраза обычно звучит как ощущение: «вроде всё работает». MVP, собранный на вайбкоде, почти всегда работает — на демо, у автора, с аккуратными данными. Ниже — шесть свойств, по которым «готово» можно проверить, а не почувствовать.
Почему «работает» не равно «готово к продакшну»
Демо проверяет один сценарий: человек делает то, что задумано. Продакшн проверяет все остальные: пустые поля, двойные клики, медленный интернет, сотню пользователей одновременно, одного пользователя с плохими намерениями, падение внешнего сервиса в три часа ночи.
Готовность к продакшну — это ответ на вопрос «что будет, если…», а не «что будет, когда всё хорошо».
1. Безопасность
Приложение отдаёт каждому только его данные и не верит тому, что пришло из браузера.
Проверяемые признаки:
- доступ к данным проверяется на сервере, а не только скрытой кнопкой в интерфейсе;
- в клиентском коде нет секретных ключей;
- вход и сброс пароля защищены от перебора;
- зависимости не содержат известных уязвимостей.
2. Сохранность данных
Данные, которые доверили приложению, не пропадают и не портятся.
- есть автоматические бэкапы, и из них хотя бы раз реально восстанавливались;
- изменения схемы базы делаются миграциями, а не правками руками;
- повторная отправка формы или повторный вебхук не создают дубликатов.
3. Наблюдаемость
Ты узнаёшь о проблеме раньше пользователей и можешь понять, что случилось.
- ошибки собираются в одном месте и приходят уведомлением;
- в логах есть что-то, по чему можно найти конкретный запрос, но нет паролей и токенов;
- есть простая проверка «сайт жив», которая не зависит от твоего браузера.
4. Восстанавливаемость
Когда что-то всё-таки ломается, починить можно быстро и без героизма.
- неудачную версию можно откатить за минуты;
- развернуть приложение с нуля можно по записанной инструкции или скрипту, а не по памяти;
- есть понятный порядок действий на случай аварии и ясно, кто его выполняет.
5. Производительность
Приложение остаётся быстрым при реальной нагрузке, а не только на пустой базе.
- основные страницы открываются быстро на среднем телефоне и мобильном интернете;
- частые запросы к базе используют индексы;
- дорогие операции — ИИ, отправка писем, обработка файлов — ограничены по частоте и не блокируют интерфейс.
6. Поддерживаемость
Код может менять не только тот, кто его написал, — включая тебя через три месяца или ИИ-ассистента без контекста.
- проект запускается локально по инструкции из README;
- есть тесты хотя бы на то, что приносит деньги или хранит данные: вход, оплата, сохранение;
- нет пяти копий одной и той же логики в разных файлах;
- настройки вынесены в переменные окружения, а окружения разделены.
Как применять это определение
Не нужно доводить каждое свойство до идеала перед запуском. Нужно знать, где ты находишься. Пройди шесть пунктов и для каждого ответь честно: «да», «частично» или «нет».
Дальше простое правило приоритета. Всё, что касается безопасности и сохранности данных, закрывается до первых настоящих пользователей: эти ошибки необратимы — утёкшие данные не вернёшь. Наблюдаемость и восстановление — до того, как от приложения начнут зависеть деньги. Производительность и поддерживаемость можно наращивать по ходу, пока они не мешают расти.
Полезно записать результат прямо в репозиторий — коротким списком в README. Через месяц будет видно, что сдвинулось, а не только ощущение, что «стало лучше».
Коротко
- Готово к продакшну — значит, приложение выдерживает настоящих пользователей без постоянного присмотра автора.
- Готовность проверяется по шести свойствам: безопасность, сохранность данных, наблюдаемость, восстановление, производительность, поддерживаемость.
- У каждого свойства есть конкретные признаки, которые можно проверить за вечер.
- Безопасность и данные — до запуска, наблюдаемость и откат — до денег, остальное — по ходу.
- Записанная оценка полезнее ощущения «вроде всё работает».
Если хочется получить такую оценку со стороны, SUBXCAT проходит эти шесть пунктов на живом проекте и чинит то, что не дотягивает.