Перейти до основного вмісту

The twelve-factor app

· 2 хв. читання
Petro Ostapuk

Більше детально можна ознайомитись на сайті: Дванадцять факторів

Дотримання цієї методології, потребує розвинутої DepOps культури, але це не означає, що не потрібно прагнути до досконаліших процесів в розробці. Навпаки, чим більш уніфіковані процеси розгортання локального середовища і чим менша різниця між development, stage, production середовищем, тим швидша адаптація нових розробників, котрі приєднуються до команди.

З власного досвіду бачив, як, наприклад використовуючи GCP для stage, production, а локально піднімаючи все ручками, колеги не могли скласти повної картини взаємодії між різноманітними сервісами, що породжувало хаос і цілі потоки питань. І лише при розгортанні локального середовища розробки development в локальному кластері(Minikube), процес розуміння всіх взаємозв'язків системи почав налагоджуватись, а також спростились деякі локальні інфраструктурні проблеми.

  1. Кодова база

    Одна кодова база, що відстежується в системі контролю версій та має багато розгортань

  2. Залежності

    Явно оголошуйте та ізолюйте залежності

  3. Конфігурація

    Зберігайте конфігурацію в середовищі виконання

  4. Сторонні служби

    Вважайте сторонні служби (backing services) підключеними ресурсами

  5. Збірка, реліз, виконання

    Суворо відокремлюйте етапи збірки та виконання

  6. Процеси

    Запускайте застосунок як один або декілька процесів без збереження внутрішньго стану (stateless)

  7. Прив'язка портів

    Експортуйте сервіси за допомогою прив'язки портів (port binding)

  8. Конкурентність

    Масштабуйте застосунок за допомогою процесів

  9. Одноразовість

    Підвищуйте надійність за допомогою швидкого запуску і коректного вимкнення

  10. Dev/prod паритет

    Прагніть максимальної ідентичності development, staging та production середовищ

  11. Журналювання

    Сприймайте журналювання (logs) як потоки подій

  12. Задачі адміністрування

    Виконуйте задачі адміністрування/керування за допомогою разових процесів