В этой статье я объясню вам рекомендации по разработке приложений в двенадцати факторах, почему это не проходит причуда, и как вы можете использовать его в буквальном уровне (ну, образно) охватить будущее.
Приложение Twelve-Factor — это набор лучших практик для создания современных веб-приложений. Существует двенадцать руководящих принципов (отсюда иначе), которые рекомендуются для каждого разработчика для создания масштабируемых приложений.
Приложение Twelve-Factor описано как:
- Автоматизирован с точки зрения развития;
- Портативный по средам выполнения;
- Развертываемый в облаке, минимизируя необходимость в администрировании серверов и сервера;
- Включен для постоянного развертывания с минимальным расходом между развитием и производственными условиями; и
- Масштабируется без значительных изменений или усилий.
Я краткому охвачу каждую из факторов. Однако для глубокого объяснения обязательно проверьте официальный сайт приложения Twelve-Factor: https://12factor.net/
1. Кодовая база
По сути, всегда будет только один репозиторий кода для данного приложения. Это может быть любая система управления версиями, такая как Гит , Mercurial или Subversion Отказ Там будет много развертываний приложения, однако приложение может быть запущено в разных средах (локальное/производство).
2. Зависимости
Никогда непосредственно скопируйте зависимость в вашу кодовую базу. Вы хотите использовать менеджер пакета для явного объявления и изолировать ваши зависимости. Для JavaScript популярные управляющие пакеты включают NPM или пряжа Отказ
3. Конфигурация
Конфигурация всегда должна храниться в переменной среды. Вы хотите, чтобы файл конфигурации отделяться от кода, так как конфин зависит от развертывания, и код не делает.
4. Служба поддержки
Обратите внимание на ваши поддержки в качестве прилагаемых ресурсов. Это означает, что вы хотите легко заставить ваши услуги легко взаимозаменять, чтобы вы могли поменяться другим сторонним поставщиком услуг без каких-либо изменений в код приложения.
5. Построить, освобождать, бегать
Приложение Twelve-Factor использует строгое разделение между этапами сборки, выпуска и прогона. Процесс сборки выполняется, когда новый код развернут. Каждый выпуск всегда должен иметь уникальный идентификатор выпуска, такой как временное отделение отпуска или увеличения числа. Тогда вы можете запустить релиз в среде выполнения.
6. Процессы
Не внедрить состояние в процессах. Двенадцать факторных процессов являются без гражданства и нечего. Любые данные, необходимые для сохранения, должны храниться в сервисном обслуживании состояний, как правило, база данных.
7. Переплета порта
Веб-приложение экспортирует HTTP в качестве услуги, привязав к порту, и прослушивание запросов, входящих в этот порт. Убедитесь, что вы экспортируете свои услуги через привязку порта. Служба должна быть видна другими услугами, поскольку они могут быть использованы.
8. Параллельность
Разделяя ваше приложение на более мелкие кусочки, вы можете масштабировать услуги. Это снижает рабочую нагрузку, поскольку отдельная виртуальная виртуальная виртуальная вирция может расти только столь большие (вертикальные масштабы), поэтому для приложения важно проводить несколько процессов на нескольких физических машинах.
9. Распоряжение
Процессы одноразовые, поэтому убедитесь, что они могут быть запущены или остановлены быстро. При этом это облегчает автоматическое масштабирование, быструю и простоту развертывания.
10. Четность dev/prod
Держите развитие, постановку и производство как можно более похожими, так что любой, кто работает над проектом, способен поднять его и освободить его. Непрерывное развертывание между развитием и производством является обязательным для ограничения сбоев и ошибок.
11. Журналы
Лечить журналы как потоки событий. Журналы полезны для проверки процессов приложений и поддержки поддержки. Вы никогда не должны касаться маршрутизации или хранения его выходного потока с вашим приложением. Вместо этого думайте об этих журналах как не имея фиксированного начала или конца, а потоки на непрерывном потоке, если приложение работает.
12. Процессы администратора
Запустите задачи Admin/Management в качестве одноразовых процессов для задач, таких как миграции базы данных и выполнение одноразовых сценариев в среде.
Независимо от вашего рамочного и технического стека, вы можете реализовать приложения Twelve-Factor приложений в ваше приложение! Некоторые отличные ресурсы, которые естественным образом дополняют приложения TVELVE-фактор, включают в себя:
- Доценв Для настройки сред (Ссылка предназначена для Node.js, но разные версии доступны для разных языков и каркасов)
- Докер для настройки контейнеров и создания идеальной среды разработки/развертывания без усилий;
- Кубернаны Для управления и масштабирования контейнеров для производственного использования;
- AWS для размещения развернутого приложения для двенадцати факторов; и
- Так многое другое!
Этот выше, который не является исчерпывающим. Я закончу эту статью, побуждаю вас сделать свои собственные исследования и найти больше инструментов, которые вы можете включить в ваш стек. Как и нет, эти приложения Twelve-Factor приложений становятся все более и чаще, поэтому лучшее время начать сейчас!
Оригинал: «https://dev.to/parkrooben/the-twelve-factor-app-how-to-embrace-the-future-20kg»