M
Management Stuff
@managementstuff228 подп.
404просмотров
7 декабря 2024 г.
Score: 444
Двенадцать факторов (Twelve-Factor App) Методология разработки, которая помогает создавать масштабируемые, надежные и легко поддерживаемые приложения. I. Кодовая база Одна кодовая база, множество развертываний. У приложения должна быть только одна кодовая база, которая управляется системой контроля версий (например, Git). Эта кодовая база может быть развернута в разных средах: тестовой, промежуточной и рабочей. II. Зависимости Явно объявляйте и изолируйте зависимости. Приложение не должно полагаться на зависимости, установленные в среде по умолчанию. Все зависимости (например, библиотеки) должны быть явно объявлены и изолированы, чтобы исключить конфликты между версиями. III. Конфигурация Сохраняйте конфигурацию в среде выполнения. Все конфигурации (например, API-ключи, адреса баз данных) должны храниться в переменных окружения, а не в коде. Это обеспечивает безопасность и гибкость. IV. Сторонние службы Считайте сторонние службы подключаемыми ресурсами. Любые внешние сервисы, такие как базы данных, кэш, API сторонних систем, должны быть легко заменяемыми, без изменений в коде приложения. V. Сборка, релиз, выполнение Строго разделяйте стадии сборки, релиза и выполнения. Процесс развертывания приложения должен быть разделен на три этапа: Сборка: преобразование кода в исполняемый артефакт. Релиз: объединение артефакта с конфигурацией. Выполнение: запуск приложения в среде. VI. Процессы Запускайте приложение как stateless-процессы. Приложение должно быть полностью независимым от состояния, хранимого в памяти или на локальном диске. Все данные, требуемые для работы, должны храниться в внешних сервисах (например, базах данных). VII. Привязка портов Экспортируйте сервисы через привязку портов. Приложение должно быть полностью самостоятельным и предоставлять свои услуги через порты, а не полагаться на внешние веб-серверы, такие как Apache или Nginx. VIII. Параллелизм Масштабируйте приложение с помощью процессов. Приложение должно быть спроектировано так, чтобы его можно было масштабировать горизонтально, добавляя больше процессов, а не увеличивая мощность одного сервера. IX. Одноразовость Обеспечьте быстрое завершение и запуск процессов. Процессы приложения должны быть максимально одноразовыми: быстро запускаться и корректно завершаться в случае ошибки или масштабирования. Это повышает надежность системы. X. Паритет разработки/работы приложения Убедитесь, что все среды максимально похожи. Окружения разработки, тестирования и продакшена должны быть максимально идентичными, чтобы минимизировать ошибки, связанные с различиями в конфигурации. XI. Журналирование Рассматривайте журнал как поток событий. Логи приложения должны быть потоками, которые записываются в стандартный вывод (stdout), а не сохраняются в файлах. Их обработкой занимается внешняя система (например, Elasticsearch или Splunk). XII. Задачи администрирования Выполняйте административные задачи как разовые процессы. Любые административные задачи (например, миграции базы данных) должны выполняться как отдельные процессы, использующие тот же код и конфигурацию, что и основное приложение. #архитектура #приложение #12факторов
404
просмотров
3151
символов
Нет
эмодзи
Нет
медиа

Другие посты @managementstuff

Все посты канала →
Двенадцать факторов (Twelve-Factor App) Методология разработ — @managementstuff | PostSniper