20-ый онлайн митап Software Craftsmanship будет посвящен тому, каким образом микросервисная архитектура помогает расти бизнесу, и какие дополнительные проблемы создает для бизнеса. При этом будут рассмотрены и альтернативные подходы и решения.
К значимым для бизнеса преимуществам микросервисной архитектуры относятся, в первую очередь, гибкость и масштабируемость - именно эти два свойства позволяют бизнесу быстрее разворачиваться в нужную сторону и уменьшают time to market.
Однако цена за эти подходы достаточно велика - нам нужно организовать взаимодействие между микросервисами. Также мы лишаемся таких удобных ACID транзакций, которые доступны в монолитной архитектуре, и нам приходится переходить к BASE подходам. Это затрудняет data persistence, и приходится использовать специальные средства для эмуляции "транзакционности", например шаблоны transactional outbox, или Saga и ее compensating transaction. Также нам придется добавлять большое количество REST контроллеров и клиентов, message producers и consumers, и все это требует дополнительного времени разработки.
Кроме взаимодействия между микросервисами, нужно еще организовать взаимодействие между командами, которые разрабатывают микросервисы, и помочь им договориться об интерфейсах взаимодействия, форматах обмена данными и SLA - то есть о контрактах. Тут на помощь приходит подход API First и связанные с ним ограничения, swagger документация и средства валидации формата сообщений, такие как Kafka Schema Registry.
Всего этого можно избежать, если не замахиваться на микросервисы, и продолжать работать с монолитным приложением. Это далеко не всегда выход, но в некоторых случаях можно смасштабироваться просто дублируя production окружение и разделяя данные. Это требует дополнительных усилий, но с точки зрения инфраструктуры, процессов и времени разработки это, как правило, гораздо дешевле, чем распиливать существующий монолит.
Однако, такой подход все равно требует грамотного управления контрактами и взаимодействия между командами, но уже не в рамках взаимодействия микросервисов, а в рамках взаимодействия компонентов внутри монолита.
Участие бесплатное, Регистрация здесь