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