0

We are looking for an Azure solution for routing incoming API messages (microservices-based) through a single entry-point to several Azure Web App instances (*.azurewebsites.net), rather than several Virtual Machines.

The routing will be URL-based, as the URL portion contains the microservice name. After that, we intend to use the same service for load balancing.

Currently we are doing this with a custom nginx server with URL redirection, but we want to know if it is possible with a native Azure service.

So far, it seems that the Azure Application Gateway is VM-oriented.

Jaime
  • 53
  • 4

3 Answers3

1

but we want to know if it is possible with a native Azure service

There is a native Azure service called Azure Kubernetes Service (AKS). It can be used to operate containers in a standardized environment.

Kubernetes has an object called Ingress, which is a declarative way to describe HTTP-based services provided by your system, and the corresponding backend services behind them. There are multiple Ingress Controller implementations that you can choose from, which turn the set of services described by Ingress objects into an actually working reverse proxy/load balancer with the proper configuration in place. NGINX Ingress Controller is one of these implementations, part of the base Kubernetes project. It uses an nginx reverse proxy configured and controlled by the Ingress Controller.

As the Ingress objects' targets, you may use type ExternalName Service objects to refer to target services external to AKS, or you may use Service objects of other types to refer to target services internal to AKS.

Laszlo Valko
  • 591
  • 6
  • 8
1

Overview


Fear not troubled citizen; Azure API Management has arrived to save you!

Azure API Management allows you to have a single endpoint for ingestion and allows you to do URL based routing to various services, in AKS, Azure Web Apps, Logic Apps or more! You can even route it to an App Gateway if you want.

It also allows you to help secure your services by not needing to code up a complete new app to host in AKS or some other service. It also lets you securely store secrets in the resource so that you do not need to have credentials stored in your code.

Since the solution is serverless you dramatically reduce your responsibility while maximizing returns, security and maintainability. No need for messy helm/AKS manifests.

Diagram


Diagram depicting ingress of traffic to API management service which then routes the traffic to the appropriate service.

Elliot Huffman
  • 1,169
  • 1
  • 10
  • 22
0

You can check out Azure Load balancer:

https://docs.microsoft.com/tr-tr/azure/load-balancer/load-balancer-overview

menderes
  • 31
  • 1
  • According to the documentation you provided, the Load Balancer service works with VM within a virtual network, which is the scenario we want to avoid. – Jaime Sep 27 '20 at 18:47