В поддержку прерыдущего поста лишь небольшой список недостастков микросервисов в сравнении с монолитом от участников моих курсов (ничего не додумывал, большинство кейсов связаны с попыткой резкого перехода на MSA). Обратите внимание, что немало недостатков таковыми не являются в сильной DevOps-культуре, однако и в области проектирования явно наблюдается skill gap, требующий повышения навыков (может потому, что микросервисы — это архитектурный стиль, а не «практика разработки?» 🙂 ):
Сложность управления и мониторинга транзакций
Сложность сопровождения
Сложность проектирования
Сложный вход, так как толстый технологический стек
Дублирование данных (но не доменных сущностей)
Проблемы с целостностью межсервисных операций
Сквозное логирование бизнес-процесса
Дорогие специалисты
Сложность отладки
Сложность в поиске специалистов и обучении команд
Отсутствует качественная "теория" по моделированию распределенных асинхронных процессов - BPMN и прочие UML не эффективны
Хайп
Сложность диагностики
Сложность проектирования и разработки
У каждой успешной компании в MSA свой "опыт" и "заплатки" трудно обобщать
Сложно всем этим зоопарком управлять
Сложность управлением памятью
Сложность системы в целом
Дольше разрабатывать
Сложнее определить требования к ресурсам
Стоимость владения может оказаться выше
Высокие затраты на входе
Производительность массовых операций из-за межсетевых вызовов
Поиск ошибок среди всего множества сервисов
Сложность использования общих библиотеки
Необходимость наличия культуры в организации
Сложность декомпозиции
Наличие множества БД и их поддержки
Необходимость в большом количестве инфраструктурных ресурсов
Требуется организация взаимосвязи между микросервисами
Больше оборудования чем в монолите
Без должно автоматизации деплой сложнее
Сложность управления и мониторинга транзакций
Сложность сопровождения
Сложность проектирования
Сложный вход, так как толстый технологический стек
Дублирование данных (но не доменных сущностей)
Проблемы с целостностью межсервисных операций
Сквозное логирование бизнес-процесса
Дорогие специалисты
Сложность отладки
Сложность в поиске специалистов и обучении команд
Отсутствует качественная "теория" по моделированию распределенных асинхронных процессов - BPMN и прочие UML не эффективны
Хайп
Сложность диагностики
Сложность проектирования и разработки
У каждой успешной компании в MSA свой "опыт" и "заплатки" трудно обобщать
Сложно всем этим зоопарком управлять
Сложность управлением памятью
Сложность системы в целом
Дольше разрабатывать
Сложнее определить требования к ресурсам
Стоимость владения может оказаться выше
Высокие затраты на входе
Производительность массовых операций из-за межсетевых вызовов
Поиск ошибок среди всего множества сервисов
Сложность использования общих библиотеки
Необходимость наличия культуры в организации
Сложность декомпозиции
Наличие множества БД и их поддержки
Необходимость в большом количестве инфраструктурных ресурсов
Требуется организация взаимосвязи между микросервисами
Больше оборудования чем в монолите
Без должно автоматизации деплой сложнее