Масштабирование приложения Microsoft Bot Framework в среде с несколькими регионами

Я настраиваю сервисную среду MS Bot framework в Azure. Мне удалось успешно настроить канал, который подключается к одной службе ботов для одного приложения. Теперь мы хотели бы масштабировать эту среду глобально (по всему миру), и мы хотели бы настроить многорегиональные среды. Когда пользователь подключается из приложения канала (MS Team), он должен иметь возможность подключиться к ближайшему к нему региону Azure и получить ответ. Как мы можем настроить географический балансировщик нагрузки для службы ботов веб-приложения Microsoft Bot Framework?

Мы пытались настроить диспетчер трафика, однако у нас есть ограничение, поскольку служба регистрации канала бота Microsoft имеет идентификатор приложения Microsoft (ClientID) и пароль, и он может подключаться только к одному URL-адресу конечной точки обмена сообщениями.

Фактические результаты: приложение для регистрации канала Microsoft Bot не может подключаться к нескольким конечным точкам обмена сообщениями в разных регионах и как мы можем балансировать нагрузку на службу MS Bot.

Ожидаемые результаты: Как мы можем сбалансировать нагрузку (задержку по регионам) на приложение MS Bot?

Пример диаграммы масштабирования


person Amit Mistry    schedule 29.03.2019    source источник


Ответы (1)


Амит, боты Azure обычно работают как службы приложений Azure. Служба приложений Azure имеет встроенные возможности масштабирования. В зависимости от уровня ценообразования, который вы выбираете для службы приложений, вы можете масштабировать до 20 экземпляров. Вы можете перейти к 100 инстансам, если находитесь на «изолированном» уровне. Вы также можете масштабировать, чтобы добавить память и процессор. Это действительно мощные ресурсы, которые вы можете использовать.

Я понимаю, что вы пытаетесь уменьшить задержку, но сначала я хотел указать на функцию масштабирования. У вас есть еще одна проблема, которую я не думаю, чтобы ее можно было преодолеть в настоящее время.

Если MS Teams - единственный канал, который вы будете использовать пользователями, то попытка управлять трафиком самостоятельно, вероятно, будет неэффективной. Ваше ограничение будет там, где расположена служба MS Teams. Команды - это то, что общается с вашим ботом, а не с пользователем напрямую.

Путь выглядит примерно так: Пользователь -> MS Teams -> Служба Azure Bot -> Служба приложений Azure.

Поскольку у вас нет контроля над подключением команд к ботам, вы не можете управлять трафиком.

Вы можете развернуть несколько ботов в разных регионах, а затем проинструктировать своих пользователей подключиться к соответствующему региональному каналу ботов в Teams. Это не автоматическое управление трафиком, но, по крайней мере, обеспечит некоторую региональную поддержку, которую вы ищете.

person Ed Boykin    schedule 02.04.2019
comment
Спасибо за ответ Эд. Я настроил диспетчер трафика с методом маршрутизации = производительность и конечные точки службы приложений разных регионов, и я могу подключиться к боту с помощью Directline / WebChat. Теперь я меняю URL-адрес конечной точки бота веб-приложения на URL-адрес диспетчера трафика, но я не могу подключиться через команду ms. Я также добавил доменное имя диспетчера трафика в действующие домены приложения ms team. - person Amit Mistry; 04.04.2019