System Design Space

    Глава 131

    Обновлено: 16 февраля 2026 г. в 03:00

    The Twelve-Factor App

    Прогресс части0/17

    Методология Heroku для SaaS: codebase, dependencies, config, backing services, build/release/run и другие принципы cloud-native.

    Источник

    The Twelve-Factor App

    Оригинальный манифест от разработчиков Heroku

    12factor.net

    The Twelve-Factor App

    Авторы: Adam Wiggins и команда Heroku
    Год: 2011
    Формат: Манифест / методология

    Методология построения современных SaaS-приложений, основанная на опыте разработки и эксплуатации сотен тысяч приложений на платформе Heroku. 12 принципов, которые обеспечивают портативность, масштабируемость и maintainability.

    Фундамент

    Операционная система: обзор

    12‑Factor опирается на чистый контракт приложения с ОС.

    Читать обзор

    Зачем это нужно

    12-Factor App — это набор принципов для создания приложений, которые:

    Используют декларативные форматы для автоматизации настройки
    Имеют чистый контракт с ОС для максимальной портативности
    Подходят для cloud-платформ без администрирования серверов
    Масштабируются без изменений архитектуры

    Связанная тема

    Cloud Native

    Containers, Functions, Data — практики cloud-native разработки

    Читать обзор

    Принципы 12-Factor App

    12 факторов сгруппированы по областям применения. Кликните на группу, чтобы подсветить связанные принципы, или на карточку для детального описания:

    Нажмите на группу, чтобы подсветить связанные принципы

    I

    Codebase

    One codebase tracked in revision control, many deploys

    II

    Dependencies

    Explicitly declare and isolate dependencies

    III

    Config

    Store config in the environment

    IV

    Backing Services

    Treat backing services as attached resources

    V

    Build, Release, Run

    Strictly separate build and run stages

    VI

    Processes

    Execute the app as one or more stateless processes

    VII

    Port Binding

    Export services via port binding

    VIII

    Concurrency

    Scale out via the process model

    IX

    Disposability

    Maximize robustness with fast startup and graceful shutdown

    X

    Dev/Prod Parity

    Keep development, staging, and production as similar as possible

    XI

    Logs

    Treat logs as event streams

    XII

    Admin Processes

    Run admin/management tasks as one-off processes

    I.

    Codebase

    One codebase tracked in revision control, many deploys

    Один репозиторий — множество деплоев. Каждое приложение имеет единую кодовую базу в Git, из которой деплоятся все окружения.

    Правильный подход
    Git repo → dev, staging, prod deploys
    Антипаттерн
    Разные ветки для разных окружений

    Фундамент

    Контейнеризация

    Контейнеры — практическая реализация 12‑Factor подхода.

    Читать обзор

    Современное применение

    Containers

    Docker и Kubernetes — идеальная реализация 12-Factor: изоляция, port binding, env vars, disposability.

    Serverless

    AWS Lambda, Cloud Functions — stateless процессы, автоматическое масштабирование, управляемые backing services.

    GitOps

    ArgoCD, Flux — декларативная конфигурация, версионирование всего, автоматизированные деплои.

    Beyond Twelve-Factor

    С 2011 года индустрия эволюционировала. Современные практики дополняют оригинальные 12 факторов:

    XIII.API First — проектирование API перед реализацией
    XIV.Telemetry — встроенный мониторинг и observability
    XV.Security — безопасность как часть дизайна (DevSecOps)

    Главные выводы

    12-Factor — фундамент cloud-native разработки
    Stateless процессы — ключ к горизонтальному масштабированию
    Конфигурация через env vars, не через файлы
    Backing services как подключаемые ресурсы
    Dev/prod parity минимизирует сюрпризы на проде
    Логи — это event streams, не файлы

    Источник

    12factor.net
    Оригинальный манифест