New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gateway] Group endpoints into load balancing/failover sets #756

Closed
YaytayAtWork opened this Issue Aug 29, 2017 · 2 comments

Comments

Projects
None yet
4 participants
@YaytayAtWork

YaytayAtWork commented Aug 29, 2017

In the current release of the gateway the dynamic routing policy is limited because it impacts load balancing and failover.
If the URL output from the dynamic routing policy fails the gateway will fall back to the normal endpoints for the API, losing any path changes that the policy made.

Sometimes it would be useful to have a single public API sit in front of a number of different (and incompatible) services.
In this situation each service would need to be represented by a set of internal endpoints - with each set having its own load balancing, failover and health monitoring.

It should be expected that different services will require different changes to the request path.

One potential way to implement this would be to have the endpoint be a different "sub-API".
This would allow all of the security-related policies to be implemented on the initial API, and then for a policy to choose the sub-API to switch to.
The sub-API would then have all the standard endpoint configurations and any policies specific to it (such as path changing or query parameter changing).

@brasseld brasseld changed the title from [Improvement] Group endpoints into load balancing/failover sets to [gateway] Group endpoints into load balancing/failover sets Aug 29, 2017

@Yaytay

This comment has been minimized.

Yaytay commented Jan 30, 2018

Note: if bouncing off to a different API is the chosen solution then the phrase "chaining APIs" is much better (naming things is a UI problem).

@Yaytay

This comment has been minimized.

Yaytay commented Jan 30, 2018

There are three different things that a Dynamic Routing policy should be able to change:
1, Just the path, with no change to the endpoints.
2. Just the endpoints, with no change to the path.
3. The entire URL - the target endpoint might be somewhere else entirely.

If the endpoints have an additional "group" property - and some of them have to have a "default" group, then the output from Dynamic Routing policy could be:

  1. http://[]/path // Changes the path only
  2. http://[group]/path // Changes the endpoint group (and optionally the path too).
  3. http://www.microsoft.com/ // Changes the URL and doesn't do failover.

@brasseld brasseld self-assigned this Apr 26, 2018

@NicolasGeraud NicolasGeraud added this to the 1.17.0 milestone May 17, 2018

brasseld added a commit to gravitee-io/gravitee-definition that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-gateway-api that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-management-rest-api that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-policy-dynamic-routing that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-management-webui that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 4, 2018

brasseld added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 6, 2018

brasseld added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 6, 2018

brasseld added a commit to gravitee-io/gravitee-management-rest-api that referenced this issue Jun 6, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 7, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-management-rest-api that referenced this issue Jun 7, 2018

brasseld added a commit to gravitee-io/gravitee-policy-dynamic-routing that referenced this issue Jun 11, 2018

brasseld added a commit to gravitee-io/gravitee-management-rest-api that referenced this issue Jun 11, 2018

brasseld added a commit to gravitee-io/gravitee-management-webui that referenced this issue Jun 11, 2018

brasseld added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 11, 2018

brasseld added a commit to gravitee-io/gravitee-management-webui that referenced this issue Jun 13, 2018

brasseld added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-definition that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-gateway-api that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-policy-dynamic-routing that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-management-webui that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-gateway that referenced this issue Jun 13, 2018

NicolasGeraud added a commit to gravitee-io/gravitee-management-rest-api that referenced this issue Jun 13, 2018

GGui pushed a commit to GGui/gravitee-management-rest-api that referenced this issue Jun 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment