Что такое Twelve-Factor App
Twelve-Factor App — это набор принципов и методик для разработки программного обеспечения, предназначенных для работы в облаке. Эти принципы помогают создавать приложения, которые легко масштабируются, поддерживаются и развиваются. Концепция была предложена компанией Heroku и охватывает двенадцать факторов:
Codebase: Приложение должно иметь только один кодовый базовый репозиторий, который используется для всех сред (разработка, тестирование, продакшн).
Dependencies: Все зависимости должны быть явно указаны в проекте и автоматически устанавливаться при развертывании приложения.
Config: Конфигурационные данные, такие как ключи API и настройки, должны быть вынесены из кода и храниться в окружении, а не внутри кода.
Backing services: Внешние сервисы (например, базы данных, кэш-серверы) должны рассматриваться как независимые компоненты, которые могут быть заменены без изменений в коде приложения.
Build, release, run: Разделение процесса развертывания на три фазы: сборка, создание релиза и запуск.
Processes: Приложение должно быть безсостоянимым, т.е. каждый процесс должен быть независим и не хранить состояние.
Port binding: Приложение должно работать как самостоятельная служба, которая слушает на определённом порту.
Concurrency: Приложение должно быть спроектировано так, чтобы можно было легко масштабировать его процессы для обработки большего числа запросов.
Disposability: Процессы должны быть легко запускаемыми и завершёнными без потери данных, что позволяет быстро реагировать на изменения.
Dev/prod parity: Среда разработки, тестирования и продакшн должны быть как можно более похожи, чтобы избежать проблем при переходе между ними.
Logs: Логи должны рассматриваться как поток событий, которые могут быть собраны и анализированы в реальном времени.
Admin processes: Административные задачи (например, миграции базы данных) должны быть выполнены в контексте приложения, чтобы обеспечить повторяемость и удобство.
Эти принципы помогают создавать приложения, которые легко масштабируются, гибки и подходят для облачной инфраструктуры.
Комментарии
Отправить комментарий