WebbyLab Новини 12-Factor App

12-Factor App

14 Листопаду, 2024
1 хвилина читання

У цьому дописі хочемо поділитись з Вами методологією, яку використовуємо при розробці додатків, а саме twelve-factor app. Це набір корисних підходів, які дозволяють спростити розробку та зробити Ваш застосунок надійним та гнучким.

  1. Кодова база. Ідея в тому щоб тримати кодову базу в одному репозиторії для одного застосунку. Одна та ж сама кодова база може бути використана для різних середовищ (prod, staging etc.).
  2. Залежності. Цей фактор говорить про те, що застосунок ніколи не повинен залежати від неявно існуючих бібліотек чи пакетів. Всі залежності застосунку мають бути задекларовані та ізольовані.
  3. Конфігурація. Конфігурація застосунку має зберігатись у змінних оточення. Це дозволяє легко розгорнути одну й ту ж саму кодову базу для різних оточень без зміни коду.
  4. Сторонні сервіси. Застосунок повинен відноситись до сторонніх сервісів, таких як бази даних, поштові сервіси, черги тощо, які повинні конфігуруватися за допомогою змінних оточення без зміни самого коду.
  5. Збірка та виконання. Суворо розділяйте етапи збірки, релізу та запуску застосунку. Це дасть змогу швидко зробити роллбек до попередньої версії застосунку.
  6. Процеси. Застосунок повинен завжди бути stateless та ніколи не зберігати свій стан. Допускається короткострокове зберігання даних в кеші або на диску.
  7. Прив’язка портів. Застосунок має комунікувати з навколишнім середовищем через прив’язку портів та прослуховувати всі запити, які надходять на цей порт.
  8. Concurrency. Масштабування застосунку відбувається за допомогою горизонтального збільшення stateless процесів, які дозволяють розподіляти та легко збільшувати навантаження.
  9. Утилізовуваність. У цьому факторі є декілька важливих пунктів, на які треба звернути увагу: можливість старту та зупинки застосунку у будь який час, мінімізація часу запуску, коректне завершення роботи, стійкість до раптової зупинки застосунку.
  10. Dev/prod паритет. Намагайтеся тримати різні середовища (dev, staging, prod) подібними. Уникайте використання різних сервісів та інструментів для середовища розробки та продакшину.
  11. Логування. Застосунок ніколи не повинен займатися управлінням та зберіганням логів, замість цього кожний процес записує свої логи в стандартне виведення (stdout).
  12. Задачі адміністрування. В проектах часто є набір разових задач таких як, міграції бази даних, запуск REPL скриптів тощо. Ключовим моментом цього фактору є те що разові задачі мають запускатися як окремі процеси в такому ж середовищі, як і тривалі задачі, і використовувати таку ж кодову базу, конфігурацію та постачатися в одному релізі.
Перегляньте інші новини
Запуск нового проекту чи вдосконалення існуючого?
Ми можемо втілити ваші ідеї в життя!
Зв'язатись з нами

2024 WEBBYLAB. All rights reserved.

Згода на файли cookie
Повідомлення. PrivacyPolicies.com використовує файли cookie, щоб забезпечити необхідну функціональність веб-сайту, покращити ваш досвід і проаналізувати наш трафік. Використовуючи наш веб-сайт, ви погоджуєтеся з нашою Політикою конфіденційності та використанням файлів cookie.
Прийняти