Микросервис внедряет SOA внутренне. В более широком смысле, мы можем рассматривать его как подмножество одного SOA-приложения.
Правило и рабочий процесс
Ниже приведены принципы, которые необходимо учитывать при разработке микросервиса.
-
Высокая сплоченность — все бизнес-модели должны быть максимально разделены на наименьшую часть бизнеса. Каждый сервис должен быть ориентирован на выполнение только одной бизнес-задачи.
-
Независимо — все сервисы должны иметь полный стек по своей природе и не зависеть друг от друга.
-
Business Domain Centric — программное обеспечение будет модульным в соответствии с бизнес-единицей и не будет основано на уровнях.
-
Автоматизация — Тестирование развертывания будет автоматизировано. Попробуйте ввести минимальное человеческое взаимодействие.
-
Наблюдаемый — каждый сервис будет иметь полный стек по своей природе, и они должны быть независимо развертываемыми и наблюдаемыми, как корпоративное приложение.
Высокая сплоченность — все бизнес-модели должны быть максимально разделены на наименьшую часть бизнеса. Каждый сервис должен быть ориентирован на выполнение только одной бизнес-задачи.
Независимо — все сервисы должны иметь полный стек по своей природе и не зависеть друг от друга.
Business Domain Centric — программное обеспечение будет модульным в соответствии с бизнес-единицей и не будет основано на уровнях.
Автоматизация — Тестирование развертывания будет автоматизировано. Попробуйте ввести минимальное человеческое взаимодействие.
Наблюдаемый — каждый сервис будет иметь полный стек по своей природе, и они должны быть независимо развертываемыми и наблюдаемыми, как корпоративное приложение.
Управление командой
«Two Pizza Rule» — это своего рода правило, ограничивающее количество участников в команде разработчиков микросервисов. Согласно этому правилу, количество членов команды одного приложения должно быть настолько маленьким, чтобы их можно было кормить двумя пиццами. Как правило, это число не должно превышать 8. Поскольку микросервис имеет полный стек по своей природе, команда также имеет полный стек по своей природе. Чтобы повысить производительность, нам нужно собрать одну команду, состоящую максимум из 8 человек, со всеми видами опыта, необходимыми для этой услуги.
Управление задачами
Задача играет важную роль в жизненном цикле разработки программного обеспечения. Разработка крупномасштабного приложения может быть разбита на несколько небольших блоков задач. Давайте рассмотрим необходимость разработки одного приложения, такого как Facebook. Тогда функциональность «Вход в систему» можно рассматривать как задачу всего процесса сборки. Ход выполнения каждой из этих задач должен контролироваться должным образом под руководством высококвалифицированных специалистов. Agile — это хорошо известная структура процессов, используемая в отраслях для обеспечения хорошего управления задачами.