Найти тему
HowToSchool

SD-EP62: Оркестрация и хореография

Есть два вида взаимодействия микросервисов друг с другом – оркестрация и хореография

Оркестратор (Orchstrator) выступает в качестве распределительного центра. Он отвечает за взаимодействие и управление всеми запросами между различными сервисами. Тут как раз подходит аналогия дирижёра и оркестра.

Хореография — это, как если бы хореограф установил все правила, а после танцоры (микросервисы) в соответствии с установленными правилами начали бы взаимодействовать на сцене без него. Хореография сервисов описывает этот обмен запросами и правила взаимодействия микросервисов.

Преимущества оркестрации:

  • Надежность. Оркестрация имеет встроенные средства управления транзакциями и обработки ошибок, в то время как хореография представляет собой двухточечную связь, в которой реализовать сценарии отказоустойчивости гораздо сложнее.
  • Масштабируемость. При добавлении нового сервиса в оркестрацию модифицировать правила взаимодействия нужно только оркестратору, в то время как в хореографии необходимо модифицировать все взаимодействующие сервисы.

Некоторые ограничения оркестрации:

  • Производительность. Все службы взаимодействуют через централизованный оркестратор, поэтому задержка выше, чем при хореографии. Кроме того, пропускная способность привязана к возможностям оркестратора.
  • Единая точка отказа. Если оркестратор выйдет из строя, никакие службы не смогут взаимодействовать друг с другом. Чтобы смягчить это, оркестратор должен иметь высокую доступность.

P.S. Был ли у вас опыт использования выше описанных подходов?