Рубрики
Без рубрики

Двенадцатифакторное применение микросервисов

Оригинал поста можно найти здесь: https://www.programmingwithjon.com/blog/12Factor Почему У… Помеченный микросервисами, javascript, java, машинописью.

Оригинал поста можно найти здесь: Оригинал поста можно найти здесь:

Двенадцатифакторное приложение – это методология для программного обеспечения как услуги (SaaS) или веб-приложений или программного обеспечения, развернутого в облаке. Это говорит нам о характеристиках результатов, ожидаемых от таких приложений. По сути, это всего лишь краткое описание необходимых условий для создания хорошо структурированного и масштабируемого облачного приложения.

Вот 12 факторов, которым следует следовать: Кодовая база: Здесь мы поддерживаем единую кодовую базу для каждого микросервиса с конфигурацией, специфичной для их собственных сред, таких как разработка, постановка и производство. Каждый микросервис будет иметь свой собственный репозиторий в системе контроля версий.

Зависимости: Все микросервисы будут иметь свои зависимости как часть пакета приложений. В Node.js , есть package.json, в котором упоминаются все зависимости разработки и общие зависимости. Вы также можете использовать частный репозиторий, из которого можно извлекать зависимости.

Конфигурации: Все конфигурации должны быть внешними, основанными на серверной среде. Должно быть разделение конфигурации и кода. Вы можете задать переменные среды непосредственно в своем проекте или использовать Docker compose для определения других переменных.

Службы резервного копирования: Любая служба, используемая по сети, такая как база данных, операции ввода-вывода, запросы обмена сообщениями или SMTP, кэш будет отображаться как микросервисы и с использованием Docker compose и не зависит от приложения.

Сборка, выпуск и запуск: Используйте автоматизированные инструменты, такие как Docker и Git, в распределенных системах. Используя Docker, вы можете изолировать все три фазы с помощью команд push, pull и run.

Процессы: Разработанные микросервисы не будут иметь состояния и не будут иметь общего доступа, что обеспечит нулевую отказоустойчивость и простое масштабирование. Тома будут использоваться для сохранения данных, что позволит избежать потери данных.

Привязка портов: Микросервисы должны быть автономными и автономными. Микросервисы должны встраивать прослушиватели служб как часть самой службы. Например – в узловом приложении HTTP-модуль, сервисная сеть, предоставляющая сервисы для обработки портов для всех процессов.

Параллелизм: Микросервисы будут масштабироваться с помощью репликации. Микросервисы масштабируются, а не расширяются. Микросервисы могут быть масштабированы или сокращены в зависимости от потока разнообразия рабочей нагрузки. Параллелизм будет поддерживаться динамически.

Возможность утилизации: Для максимальной надежности приложения с быстрым запуском и плавным завершением работы. Различные опции включают политики перезапуска, оркестровку с использованием Docker swarm, обратный прокси-сервер и балансировку нагрузки с помощью контейнеров служб.

Паритет разработчиков/продуктов: Сохраняйте одинаковые среды разработки/производства/постановки. Использование контейнерных микросервисов помогает реализовать стратегию “построй один раз и работай где угодно”. Одно и то же изображение используется на различных этапах разработки.

Журналы: Создание отдельного микросервиса для журналов делает его централизованным, позволяет обрабатывать его как потоки событий и отправлять в такие фреймворки, как Netlify или Elastic stack.

Процессы администратора: Администратор или любые задачи управления должны быть упакованы как один из процессов, чтобы их можно было легко выполнять, отслеживать и управлять. Это включает в себя такие задачи, как миграция базы данных, одноразовые сценарии – исправление поврежденных данных и т.д.

Я надеюсь, что это поможет немного демистифицировать приложение Двенадцать факторов . Я знаю, что когда я впервые узнал об этом и о том, как правильно настраивать микросервисы, было трудно запомнить все факторы. Я создал этот пост, чтобы использовать его в качестве шпаргалки, если вы захотите время от времени возвращаться к нему на случай, если вы не можете вспомнить все факторы. Дайте мне знать, если я что-нибудь пропустил.

Спасибо

Оригинал: “https://dev.to/redhoodjt1988/twelve-factor-application-of-microservices-m0p”