После просмотра видеороликов конференции BUILD для Azure Service Fabric мне осталось только представить, как это может хорошо вписаться в нашу текущую архитектуру, основанную на микросервисах. Однако есть одна вещь, которую я не совсем уверен, как я буду ее решать - шлюз / прокси API.
Рассмотрим менее чем тривиальную архитектуру микросервисов, в которой у вас есть N служб, работающих в Azure Service Fabric, предоставляющих конечные точки REST. Во многих ситуациях вы хотите упаковать эти фрагментированные конечные точки API в API с одной записью для использования потребителями, чтобы они не подключались напрямую к экземплярам фабрики служб. Решение Azure Service Fabric кажется настолько полным во всех смыслах, что я как бы задаюсь вопросом, не упустил ли я что-то очевидное, когда я не вижу способа тривиально решить эту проблему в рамках возможностей, упомянутых во время обсуждений BUILD.
Такие службы, как Vulcan, стремятся решить эту проблему, позволяя службам регистрировать пути, которые они хотят направить к ним, в etcd. Я предполагаю, что одним из способов решения этой проблемы может быть создание отдельной веб-службы с отслеживанием состояния, в которой другие службы могут регистрироваться, предоставляя имя службы и пути, которые им нужно направить к ним. Затем веб-служба с отслеживанием состояния может направлять трафик к правильному экземпляру в зависимости от своего состояния. Однако это не кажется полностью идеальным с такими вещами, как удаление маршрутов при удалении приложений и, как правило, синхронизация состояния со службами, развернутыми в кластере. Кто-нибудь думал об этом или есть идеи, как решить эту проблему в Azure Service Fabric?