#architecture #cloud #message-queue #publish-subscribe
#архитектура #облако #очередь сообщений #опубликовать-подписаться
Вопрос:
Наша текущая устаревшая система является локальной. Мы планируем перенести наши приложения в облако в качестве долгосрочной цели, но пока нам необходимо интегрировать эту устаревшую систему с нашими облачными приложениями.
Наша цель: разработать интеграцию, которая позволит нашей устаревшей системе взаимодействовать с нашими новыми облачными приложениями.
Наш план: мы будем использовать очереди обмена сообщениями, чтобы обеспечить слабосвязанную связь между нашей устаревшей системой и облаком.
У нас будет экземпляр message broker в нашей устаревшей системе и еще один экземпляр в облаке. В конечном итоге мы получим несколько разных приложений в облаке, все из которых будут взаимодействовать с устаревшей системой, но будут отделены от остальных наших приложений в облаке.
Какой был бы наилучший способ достичь этого?
Делаем ли мы:
- Должны ли все наши облачные приложения «подключаться» к нашему единому брокеру в облаке и получать сообщения в режиме паба / суб?
- Создайте выделенные очереди для каждого из наших облачных приложений, и пусть наши облачные приложения считывают эти сообщения непосредственно из своей очереди.
Я понимаю, что мой вопрос немного высокоуровневый, поскольку он относится к системному дизайну, но в то же время я надеюсь, что он также достаточно специфичен. Любой ввод или обратная связь будут приветствоваться.
Комментарии:
1. В конце концов вы нашли подход?
Ответ №1:
Я бы настоятельно рекомендовал вам сделать шаг назад и разработать стратегию вашей архитектуры, прежде чем принимать решения о технической инфраструктуре:
- БИЗНЕС: Определите различные поддомены («компоненты») из вашего устаревшего приложения и новых облачных приложений и их относительную важность: ядро, поддержка, общие. Таким образом, вы будете определять приоритеты того, что следует перенести из устаревшего.
- КОМАНДА: Если вы управляете более чем одной командой (возможно, в вашем случае устаревшими или облачными командами?), Убедитесь, что команды согласованы с поддоменами (обратный маневр Конвея), чтобы свести к минимуму трудности при совместной работе.
- СВЯЗЬ: определите отношения между различными поддоменами: кто является восходящим, нисходящим, каковы контракты взаимодействия?
ЗАТЕМ вы можете начать рассматривать «подключение» и различные варианты инфраструктуры для подключения ваших компонентов на основе ваших технических требований: синхронный, асинхронный и т.д. И вернемся к вашему первоначальному вопросу в случае асинхронного подключения: через посредника очереди сообщений или нет?
На этих слайдах объясняется более подробно: Визуализация социотехнических архитектур с помощью контекстных карт.
И если этот тип подхода к архитектуре вам подходит, взгляните на процесс моделирования начального проектирования, управляемого доменом, со многими другими подробностями.