The art of programming
19.11
The Twelve Factors. И ты тоже?
Когда-то в далеком 2011 году разработчики платформы Heroku собрали ряд проблем, на которые налетает большинство их клиентов, и сформировали 12 правил-принципов и обозвали это The Twelve-Factor App.
Авторам The Twelve-Factor App удалось создать стройную и непротиворечивую систему принципов и способов построения практической деятельности по созданию веб-приложений и даже чуть шире — веб-сервисов по модели software-as-a-service (SaaS). И в этом смысле The Twelve-Factor App можно назвать методологией.
Сильное влияние на авторов оказали книги Мартина Фаулера «Patterns of Enterprise Application Architecture» и «Refactoring». Прежде всего они адресовали свою работу разработчикам, которые создавали в то время SaaS-приложения, и Ops-инженерам, которые были заняты развертыванием и управлением такими приложениями.
Вот эти факторы в коротком изложении, хотя за каждым скрывается развернутое описание:
Двенадцать факторов
I. Кодовая база Одна кодовая база, отслеживаемая в системе контроля версий, — множество развертываний
II. Зависимости Явно объявляйте и изолируйте зависимости
III. Конфигурация Сохраняйте конфигурацию в среде выполнения
IV. Сторонние службы (Backing Services) Считайте сторонние службы (backing services) подключаемыми ресурсами
V. Сборка, релиз, выполнение Строго разделяйте стадии сборки и выполнения
VI. Процессы Запускайте приложение как один или несколько процессов, не сохраняющих внутреннее состояние (stateless)
VII. Привязка портов (port binding) Экспортируйте сервисы через привязку портов
VIII. Параллелизм Масштабируйте приложение с помощью процессов
IX. Одноразовость (Disposability) Максимизируйте надежность с помощью быстрого запуска и корректного завершения работы
X. Паритет разработки/работы приложения Держите окружения разработки, промежуточного развёртывания (staging) и рабочего развёртывания (production) максимально похожими
XI. Журналирование (Logs) Рассматривайте журнал как поток событий
XII. Задачи администрирования Выполняйте задачи администрирования/управления с помощью разовых процессов
Многие вещи из этого списка остались, и кажется, совсем не устарели, но если копнуть глубже, ряд пунктов требует обновления. И 12 ноября Yehuda Katz объявил, что Twelve-Factor App Methodology is now Open Source. О том, какой это Open Source, мы еще узнаем, но, кажется, нас ждет обновление и модернизация ранее созданной методологии, порадуемся этому.
еще контент в этом сообществе
еще контент в этом соообществе
The art of programming
19.11
войдите, чтобы увидеть
и подписаться на интересных профи