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