Twelve-Factor APP - Методология разработки программного обеспечения, направленная на создание современных веб-приложений, которые легко масштабируются, поддерживаются и разворачиваются в облачных средах. Она была представлена Адамом Уотсоном из Heroku и стала популярной благодаря своей практичности и универсальности.
Методология основана на 12 принципах (факторах), каждый из которых решает определённые проблемы разработки и эксплуатации приложений. Разберём их по порядку:
-
Кодовая база - одна кодовая база для одного приложения помогает избежать дублирования кода и упрощает управление проектом. Различные версии приложения (например, production, staging) должны быть реализованы через развёртывание одной и той же кодовой базы с различными конфигурациями.
-
Зависимости - явно декларируйте и изолируйте зависимости, приложение должно явно указывать все необходимые библиотеки и инструменты, чтобы его можно было легко развернуть в любой среде, как пример использование файлов requirements.txt (Python), package.json (Node.js) или pom.xml (Java).
-
Конфигурация - храните конфигурацию к переменных окружения, параметры не должны быть хардкодом, например URL базы данных, API ключи
-
Сторонние службы - считайте сторонние службы (базы данных, очереди, кеш) подключаемыми
-
Сборка, релиз, выполнение - просто четко разделяйте эти шаги (стадии) разработки
-
Процессы - приложения лучше запускать как отдельные процессы которые не хранят состояния(stateless)
Продолжение следует👇