Он описывает проверенные временем архитектурные паттерны и практики, которые можно применять к SaaS-приложениям. Эти подходы помогают создавать софт, который будет устойчивым и легко переносимым при деплое в онлайн-среду.
Двенадцать факторов:
I. Codebase
Одна кодовая база под управлением системы контроля версий, много окружений для деплоя
II. Dependencies
Явное объявление и изоляция зависимостей
III. Config
Хранение конфигурации в окружении
IV. Backing services
Внешние сервисы воспринимаются как подключаемые ресурсы
V. Build, release, run
Жёсткое разделение стадий сборки, релиза и запуска
VI. Processes
Приложение запускается как один или несколько Stateless-процессов
VII. Port binding
Экспорт сервисов через привязку к порту
VIII. Concurrency
Масштабирование через модель процессов
IX. Disposability
Максимальная надёжность за счёт быстрого старта и корректного завершения
X. Dev/prod parity
Минимизировать различия между dev, staging и production
XI. Logs
Логи рассматриваются как поток событий
XII. Admin processes
Админские задачи выполняются как одноразовые процессы
В книге Beyond the 12 Factor App Кевин Хоффман дополняет эти принципы новыми пунктами, включая телеметрию и безопасность:
- Один код, одно приложение
- API first
- Управление зависимостями
- Design, build, release, run
- Конфигурация, креды и код
- Логи
- Disposability
- Внешние сервисы
- Эквивалентность окружений
- Административные процессы
- Port binding
- Stateless-процессы
- Конкурентность
- Телеметрия
- Аутентификация и авторизация
👉 Java Portal
