-
Notifications
You must be signed in to change notification settings - Fork 7
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
Implement VRO API Gateway to serve multiple APIs #1512
Comments
I think as an engineer, it's important to understand tradeoffs and risks. I agree that VRO api serves as a security blanket, this is not without a cost. It does become a single point of failure for any dependent API's, so glad to see we have some e2e tests setup already. Additional benefits of having a gateway: We can consolidate how we monitor API performance and get that info in a single place. |
Thoughts about how to incorporate an API gateway:
|
Reference thread for prioritization -- this is becoming a blocker for Contention Classification team's ability to publish their API spec. |
LHDI has an existing Kong API Gateway in place, my understanding is that they use it for both internal and external-facing partner APIs today. Please check with them to see if their gateway satisfies our requirements. |
@va-albers Who's a good Kong contact? |
@yoomlam we could check with the LHDI during their Wednesday 11 AM ET office hours. Also Steven Bair mentioned a few names: Thanks @yoomlam ! |
Posted question. |
As of 5/10, while the CC API is our only use case, we decided not to solve for serving multiple APIs yet. Instead, we will temporarily point the single VRO API hostname to the CC API as the single API within VRO (decoupling it from the existing, RRD-focused VRO API). Then when we surface our next use case for having an external system call an additional API within VRO, we'll come back around to solving for serving up multiple APIs. (Further context on this decision in Slack here). |
@yoomlam I'd like to either revamp this ticket to be a tech spec/tech design ticket for solving for serving up multiple APIs (either via gateway or K8s solution), or, close this ticket and reference it in a new tech spec/tech design ticket. Any preference or opinion on that? |
Let's keep this ticket as is in case we do want an API Gateway as the solution, so "close this ticket and reference it in a new tech spec/tech design ticket". |
Update as of 5/15, with a reduced LOE on this API gateway effort we decided to go ahead with it instead of the workaround of pointing the VRO API to the CC API mentioned above. (Slack post here) |
Finally got it working in LHDI. Need to clean up the code and document on the wiki. |
@yoomlam I'd like to succinctly capture the decision history on this one, namely:
Could you incorporate that into the wiki documentation you mentioned? |
Created new follow-on ticket #1591 with the same ticket labels as this one. |
Deployed and tested in all LHDI envs. |
VRO currently serves up its API using Spring MVC. This constrains implementations of new APIs to be written using Spring MVC and Java. To support serving up APIs implemented in other languages (i.e., Python used by the CC Team), implement a VRO Gateway that queries for available APIs and merges them to present a single VRO API.
AC:
Reference
etcd
container, need script to import OpenAPIs (https://apisix.apache.org/docs/dashboard/modules/data_loader/openapi3/, https://apisix.apache.org/docs/dashboard/IMPORT_OPENAPI_USER_GUIDE/) and seems rather new (cannot export APIs?).Benefits of having a gateway:
The text was updated successfully, but these errors were encountered: