Я не уверен, что это правильный форум, чтобы задавать вопросы об архитектуре инфраструктуры. Но разместив вопрос в надежде на это:
У одного из моих клиентов есть веб-приложение, разработанное с использованием новейших микросервисных технологий. Kubernetes - это нижележащий уровень. Кроме того, они используют CDN, хостинг API и т. Д. Теперь, с точки зрения общедоступного облака (лазурного или AWS), как я могу спроектировать инфраструктуру здесь? У меня есть пара вопросов по поводу сервисов, которыми они пользуются. Для простоты я буду говорить с точки зрения Azure POV. Решено использовать следующие компоненты от Azure:
Azure CDN, шлюз приложений Azure, Azure FrontDoor.
Меня смущает поток вызовов с этими услугами. От клиента (например, веб-браузера), когда есть запрос для приложения, в идеале статическое содержимое должно получать ответ от Azure CDN, а другое динамическое содержимое - путем проверки контейнера или сервера. Итак, вот что я предполагаю о потоке вызовов:
Браузер -> Входная дверь Azure -> Шлюз приложений -> Микросервис управления API -> Другие микросервисы -> Azure CDN -> Браузер
Это верно? Если нет, не могли бы вы помочь мне лучше понять архитектуру? Любая помощь будет оценена по достоинству.
Хорошо, сначала у вас есть несколько разных сервисов, выполняющих одно и то же, поэтому вы хотите оценить, нужны ли они вам все.
Независимо от того, выберете ли вы Front Door или CDN, они хотят быть впереди вашего стека. В идеале вы хотите, чтобы трафик попадал в FD / CDN, получал кешированный ответ, и это был конец запроса.
Если вы не можете обслуживать из кеша, то теперь вам нужно направить свой трафик в Kubernetes, поэтому ваш передний ресурс стека (CDN или Front Door) теперь будет перенаправлен, как бы вы ни открывали свой кластер Kubernetes внешнему миру. Это может быть шлюз приложений, если вы решите, что он вам нужен, внешний балансировщик нагрузки или диспетчер API Azure, если вы используете его для предоставления доступа к API.
Front Door - это глобальная служба, не подключенная к виртуальной сети. Кластер Kubernetes подключен к виртуальной сети, поэтому вам нужен способ предоставить ресурсы Kubernetes для парадного входа. Это можно сделать с помощью App GW, но это требует дополнительных затрат, вы также можете просто настроить свой вход Kubernetes с помощью Azure Load Balancer с общедоступным IP-адресом, а затем поговорить с ним.
Если вы избавитесь от App GW, вам понадобится другой контроллер входящего трафика, работающий в вашем кластере, такой как NGinx, Traefik и т. Д. В качестве альтернативы вы можете сохранить App GW, но тогда я бы использовал CDN, а не Front Door.
Передняя дверь и CDN используют одни и те же конечные точки и поэтому предлагают одинаковое кэширование.