Skip to content
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

Add DSS pool load balancer component #1139

Open
BenjaminPelletier opened this issue Dec 4, 2024 · 0 comments
Open

Add DSS pool load balancer component #1139

BenjaminPelletier opened this issue Dec 4, 2024 · 0 comments
Labels
deployment Related to deploying a DSS instance rather than application logic or behavior dss Relating to one of the DSS implementations feature Issue would improve software

Comments

@BenjaminPelletier
Copy link
Member

Is your feature request related to a problem? Please describe.
ASTM standards envision interchangeable DSS instances hosted by separate USSs improving resiliency of the overall ecosystem by being able to fail over to another USS's DSS instance when a primary DSS instance fails[1][2]. However, currently, the InterUSS DSS implementation does not provide this capability to USS users; the USS users must provide it on their own.

[1] "USSs can interact with any DSS instance within a pool and switch over to any other instance in the event of a failure." ASTM F3548-21 3.2.18
[2] "Mitigation—The affected USS switches to another DSS instance in the pool." ASTM F3548-21 X5.2.4

Describe the solution you'd like
InterUSS should optionally provide a "pool load balancer" that exposes the application APIs of a DSS instance. It will usually direct traffic inward to the existing DSS instance load balancer, but when certain types of failures are detected, it will instead direct traffic to the application API of one of the other specified DSS instances. Visually, this feature would add the green boxes:

image

Describe alternatives you've considered
It is unclear whether this feature should be an enableable part of the existing DSS instance deployment, or whether it should be a stand-alone deployment. Simplicity would seem to recommend being a component the existing DSS deployment, but this would make the pool load balancer more likely to fail along with the DSS instance, thus negating some of the benefit of failover.

Additional information
An important design choice will be determining the conditions under which this new DSS pool load balancer would start and stop sending traffic away from its primary DSS instance. Using existing health monitoring information from the DSS instance deployment would likely be a good first pass, though there may be some work to make that information accessible outside the Kubernetes cluster if this DSS pool load balancer is to be deployed separately from a DSS instance.

@BenjaminPelletier BenjaminPelletier added feature Issue would improve software dss Relating to one of the DSS implementations deployment Related to deploying a DSS instance rather than application logic or behavior labels Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployment Related to deploying a DSS instance rather than application logic or behavior dss Relating to one of the DSS implementations feature Issue would improve software
Projects
None yet
Development

No branches or pull requests

1 participant