Посмотрим, что скрывается за модным buzzword’ом, взвесим обещанные плюсы и найдем минусы, о которых умалчивают. Разберемся зачем они нужны, и пора ли отказываться от монолита. И попробуем понять, как же их делать.
4. Определение микросервисов
Набор независимых, но связанных между собой сервисов
Построены вокруг бизнес-потребностей
Развертываются независимо
Имеют минимум централизованного управления
1
2
3
4
5. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
6. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
7. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
8. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
26. Когда их использовать
less complex
higher volume (”internet-scale”)
domain
scalability
complexity
lower volume (”enterprise-scale”)
more complex
micro
services
modular
monoliths
27. Когда еще их использовать
Необходимо выпускать новый функционал часто
Можно получить большие преимущества при написании
разных частей системы на разных языках
Есть необходимость использовать разные базы данных
для разных задач
1
2
3
28. Когда лучше не использовать
Не знаете зачем они
Нет соответствующей инфраструктуры
1
2
31. Как строить микросервисы
Функциональная декомпозиция
Взаимодействие с пользователями системы
Взаимодействие между сервисами
Обеспечение согласованности данных
Service discovery
Тестирование
Логирование
1
2
3
4
5
6
7
39. Обеспечение согласованности
данных
После совершения пользователем операции в одном
из сервисов изменились данные и нужно эти изменения
отправить в другой сервис.
Нам необходимо построить отчет по неким показателям,
данные для составления отчета распределены по нескольким
микросервисам.
1
2
55. Объединение запросов
Запрос на списание
получен.
ID: xxxx-xxxx-xxxx-xxxx
Списание прошло
успешно.
ID: xxxx-xxxx-xxxx-xxxx
Средства переведены
клиенту.
ID: xxxx-xxxx-xxxx-xxxx