823просмотров
85.6%от подписчиков
7 февраля 2026 г.
Score: 905
Привет! 👋 Все слышали про Twelve-Factor App? Ну, это то самое двенадцатифакторное приложение: Принципы были предложены ещё в 2011 году для разработки масштабируемых, поддерживаемых и переносимых приложений, особенно веб- и SaaS-приложений. А ещё это помогало делать их cloud-ready. Кратко:
1️⃣Codebase — единая кодовая база
Один репозиторий исходного кода для одного приложения; может быть много развёртываний.
2️⃣Dependencies — зависимости
Все зависимости должны быть явно объявлены и изолированы (без неявной зависимости от системных библиотек). 3️⃣ Config — конфигурация
Конфигурация, меняющаяся между средами (dev/staging/prod), хранится в переменных окружения, а не в коде.
4️⃣Backing Services — сопутствующие сервисы
Внешние ресурсы (БД, кэш, очереди и т. п.) считаются подключаемыми ресурсами и должны быть доступны через конфигурацию.
5️⃣Build, Release, Run — сборка / релиз / запуск
Чёткое разделение этапов: сборка → релиз → выполнение; каждый релиз однозначно идентифицируется.
6️⃣Processes — процессы
Приложение запускается как один или несколько stateless-процессов; любой сохраняемый state должен быть вынесен в backing services.
7️⃣Port Binding — привязка порта
Сервис должен быть самостоятельным и экспортировать своё API/HTTP через собственный порт.
8️⃣Concurrency — параллелизм
Приложение должно проектироваться так, чтобы масштабироваться за счёт запуска нескольких независимых процессов, каждый из которых выполняет свою работу (например, веб-запросы, фоновые задачи и т. п.).
9️⃣Disposability — уничтожаемость
Процессы должны быстро стартовать и корректно завершаться, облегчая масштабирование и устойчивость к сбоям.
1️⃣0️⃣Dev/Prod Parity — паритет dev/prod
Среды разработки, тестирования и продакшена должны быть максимально похожи, чтобы избежать сюрпризов при деплое. 1️⃣1️⃣ Logs — логи
Приложение не управляет журналами само, а выводит их как поток событий в стандартный вывод, чтобы внешние сервисы могли агрегировать и обрабатывать их. 1️⃣2️⃣ Admin Processes — админ-процессы
Одноразовые задачи (миграции, администрирование) выполняются как отдельные процессы в том же окружении, что и основные процессы приложения. Я бы сказал, что сегодня эти принципы уже где-то на уровне ДНК. Во многих командах они применяются даже неосознанно: «ну а как иначе?». Интересно, что узнал я о них сильно позже момента, когда они были сформулированы. И когда читал, было ощущение:
а что, правда можно было делать по-другому? Но вот важный момент. В 2026 этого уже недостаточно. Не, принципы не утратили актуальности. Мир стал другим. ️⃣системы стали распределённее,
️⃣состояние перестало быть очевидным,
️⃣инфраструктура и платформа стали частью архитектуры,
️⃣появились observability, async-коммуникации, ML, AI-нагрузки, event-driven мир. И если слепо следовать Twelve-Factor App, можно построить формально «правильное», но плохо управляемое приложение. Я всё чаще ловлю себя на том, что в реальной работе использую больше правил, чем 12 — и некоторые из них даже противоречат исходным факторам, если читать их буквально. Такие дела. Собственно, почему я об этом вспомнил? Сегодня Heroku выкатили новость о том, что они фактически замораживают свою разработку и развитие, но не закрываются — во всяком случае пока. Фокус компании смещается в область работы с AI. В прочему, тут ничего неожиданного. AI сейчас везде и всюду. Об этом мы поговорим как-нибудь в следующий раз. ❓ Вопрос к вам:
️⃣Каких фаткоров нехватает в 2026 году на ваш взляд? ️⃣А может быть какие-то устарели и больше не нужны? Го, обсудим в вкомментах. 🔫 🧐 Давайте оставаться на связи ☄️