The twelve-factor app
Більше детально можна ознайомитись на сайті: Дванадцять факторів
Дотримання цієї методології, потребує розвинутої DepOps культури, але це не означає, що не потрібно прагнути до досконаліших процесів в розробці. Навпаки, чим більш уніфіковані процеси розгортання локального середовища і чим менша різниця між development, stage, production середовищем, тим швидша адаптація нових розробників, котрі приєднуються до команди.
З власного досвіду бачив, як, наприклад використовуючи GCP для stage, production, а локально піднімаючи все ручками, колеги не могли скласти повної картини взаємодії між різноманітними сервісами, що породжувало хаос і цілі потоки питань. І лише при розгортанні локального середовища розробки development в локальному кластері(Minikube), процес розуміння всіх взаємозв'язків системи почав налагоджуватись, а також спростились деякі локальні інфраструктурні проблеми.
-
Кодова база
Одна кодова база, що відстежується в системі контролю версій та має багато розгортань
-
Залежності
Явно оголошуйте та ізолюйте залежності
-
Конфігурація
Зберігайте конфігурацію в середовищі виконання
-
Сторонні служби
Вважайте сторонні служби (backing services) підключеними ресурсами
-
Збірка, реліз, виконання
Суворо відокремлюйте етапи збірки та виконання
-
Процеси
Запускайте застосунок як один або декілька процесів без збереження внутрішньго стану (stateless)
-
Прив'язка портів
Експортуйте сервіси за допомогою прив'язки портів (port binding)
-
Конкурентність
Масштабуйте застосунок за допомогою процесів
-
Одноразовість
Підвищуйте надійність за допомогою швидкого запуску і коректного вимкнення
-
Dev/prod паритет
Прагніть максимальної ідентичності development, staging та production середовищ
-
Журналювання
Сприймайте журналювання (logs) як потоки подій
-
Задачі адміністрування
Виконуйте задачі адміністрування/керування за допомогою разових процесів