Re: Brokered route services only receiving traffic for routes mapped to started apps
Shannon Coen
Hi Guillaume,
toggle quoted messageShow quoted text
It would be great to have a chance to talk more about this at summit. In summary, I believe supporting your use case is a large effort, and yours in the only evidence I've heard in support of it. This makes prioritization a challenge. However, I believe our current plan for architectural changes to routing will eventually satisfy your requirements as well. Currently, CC sends route registration to Diego when an app is started. Routes do not land in the router's routing table until the app is started, as Diego doesn't know anything about stopped apps (LRPs are deleted when a user requests stop). Since Diego will have no information about the LRP, the router-emitter has no way of discovering that a route should be registered. Our plan is to move routing info out Diego. I believe it will fulfill your use case, and the Diego team very much wants this also. The plan looks like this: 1. Update Routing API endpoints for HTTP route registration to be consistent with the TCP endpoints we've been focused on 2. Update the Route-Registrar job used by system components, service brokers, etc. to register HTTP, to point at the Routing API, instead of NATS. 3. Update the route-emitter to register HTTP routes for apps on Diego with the Routing API. *At this point, we believe we will have removed the need for NATS in CF* 4. Update the Routing API to support route reservation, independent of whether there are backends or not. *At this point, an independent client could conceivably register a route with a route_service_url, and without backends* 5. We may need to update Route-Registrar job to support reservation of a route without backends, and association of backends with the route 6. Update CC to register app routes with Routing API, instead of sending this data to Diego with createLRP, and update the route-emitter to significantly change its behavior: instead of calculating the routing table and sending it to Routing API, it will ask Diego for backends associated with routes in the Routing API (linked by the process ID, most likely). *At this point, a developer could conceivably use CLI to create a route, bind it to a Route Service, and without mapping the route to an app, the router would forward requests for the route to the Route Service.* Best, Shannon Coen Product Manager, Cloud Foundry Pivotal, Inc.
On Fri, May 13, 2016 at 1:31 AM, Guillaume Berche <bercheg(a)gmail.com> wrote:
Shannon,
|
|