EN Прислать проект
Все статьи

Что значит «готово к продакшну»: определение вместо ощущения

Готово к продакшну — это не ощущение, а шесть проверяемых свойств: безопасность, сохранность данных, наблюдаемость, восстановление, скорость и поддержка.

· 4 минОсновыКод

«Готово к продакшну» значит, что приложение может работать с настоящими пользователями и их данными без постоянного присмотра автора: оно не отдаёт чужое, не теряет сохранённое, сообщает о своих поломках и переживает их. Это не про количество фич, а про то, что происходит, когда что-то идёт не так.

Проблема в том, что фраза обычно звучит как ощущение: «вроде всё работает». MVP, собранный на вайбкоде, почти всегда работает — на демо, у автора, с аккуратными данными. Ниже — шесть свойств, по которым «готово» можно проверить, а не почувствовать.

Почему «работает» не равно «готово к продакшну»

Демо проверяет один сценарий: человек делает то, что задумано. Продакшн проверяет все остальные: пустые поля, двойные клики, медленный интернет, сотню пользователей одновременно, одного пользователя с плохими намерениями, падение внешнего сервиса в три часа ночи.

Готовность к продакшну — это ответ на вопрос «что будет, если…», а не «что будет, когда всё хорошо».

1. Безопасность

Приложение отдаёт каждому только его данные и не верит тому, что пришло из браузера.

Проверяемые признаки:

  • доступ к данным проверяется на сервере, а не только скрытой кнопкой в интерфейсе;
  • в клиентском коде нет секретных ключей;
  • вход и сброс пароля защищены от перебора;
  • зависимости не содержат известных уязвимостей.

2. Сохранность данных

Данные, которые доверили приложению, не пропадают и не портятся.

  • есть автоматические бэкапы, и из них хотя бы раз реально восстанавливались;
  • изменения схемы базы делаются миграциями, а не правками руками;
  • повторная отправка формы или повторный вебхук не создают дубликатов.

3. Наблюдаемость

Ты узнаёшь о проблеме раньше пользователей и можешь понять, что случилось.

  • ошибки собираются в одном месте и приходят уведомлением;
  • в логах есть что-то, по чему можно найти конкретный запрос, но нет паролей и токенов;
  • есть простая проверка «сайт жив», которая не зависит от твоего браузера.

4. Восстанавливаемость

Когда что-то всё-таки ломается, починить можно быстро и без героизма.

  • неудачную версию можно откатить за минуты;
  • развернуть приложение с нуля можно по записанной инструкции или скрипту, а не по памяти;
  • есть понятный порядок действий на случай аварии и ясно, кто его выполняет.

5. Производительность

Приложение остаётся быстрым при реальной нагрузке, а не только на пустой базе.

  • основные страницы открываются быстро на среднем телефоне и мобильном интернете;
  • частые запросы к базе используют индексы;
  • дорогие операции — ИИ, отправка писем, обработка файлов — ограничены по частоте и не блокируют интерфейс.

6. Поддерживаемость

Код может менять не только тот, кто его написал, — включая тебя через три месяца или ИИ-ассистента без контекста.

  • проект запускается локально по инструкции из README;
  • есть тесты хотя бы на то, что приносит деньги или хранит данные: вход, оплата, сохранение;
  • нет пяти копий одной и той же логики в разных файлах;
  • настройки вынесены в переменные окружения, а окружения разделены.

Как применять это определение

Не нужно доводить каждое свойство до идеала перед запуском. Нужно знать, где ты находишься. Пройди шесть пунктов и для каждого ответь честно: «да», «частично» или «нет».

Дальше простое правило приоритета. Всё, что касается безопасности и сохранности данных, закрывается до первых настоящих пользователей: эти ошибки необратимы — утёкшие данные не вернёшь. Наблюдаемость и восстановление — до того, как от приложения начнут зависеть деньги. Производительность и поддерживаемость можно наращивать по ходу, пока они не мешают расти.

Полезно записать результат прямо в репозиторий — коротким списком в README. Через месяц будет видно, что сдвинулось, а не только ощущение, что «стало лучше».

Коротко

  • Готово к продакшну — значит, приложение выдерживает настоящих пользователей без постоянного присмотра автора.
  • Готовность проверяется по шести свойствам: безопасность, сохранность данных, наблюдаемость, восстановление, производительность, поддерживаемость.
  • У каждого свойства есть конкретные признаки, которые можно проверить за вечер.
  • Безопасность и данные — до запуска, наблюдаемость и откат — до денег, остальное — по ходу.
  • Записанная оценка полезнее ощущения «вроде всё работает».

Если хочется получить такую оценку со стороны, SUBXCAT проходит эти шесть пунктов на живом проекте и чинит то, что не дотягивает.

Хочешь, сделаем это за тебя?

Расскажи о проекте ассистенту — через пять минут будет примерная смета, через 48 часов разбор.

Созвон с командой 20 минут: инженер, дизайнер и маркетолог посмотрят на проект вместе с тобой.
Записаться на звонок