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