aws / aws-app-mesh-roadmap

AWS App Mesh is a service mesh that you can use with your microservices to manage service to service communication
Apache License 2.0
347 stars 25 forks source link

Allow wildcard entries in VirtualNode backends #60

Open bcelenza opened 5 years ago

bcelenza commented 5 years ago

Tell us about your request What do you want us to build?

It would be great to be able to include a wildcard ("*") when specifying VirtualNode backends for VirtualServices.

Which integration(s) is this request for? All

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? Let's say I operate a service which depends on three other services in a DNS namespace. I model my VirtualNode today to look something like:

"backends": [
    { "virtualService": { "virtualServiceName": "foo.namespace.mesh.local" },
    { "virtualService": { "virtualServiceName": "bar.namespace.mesh.local" },
    { "virtualService": { "virtualServiceName": "baz.namespace.mesh.local" }
]

Instead of having to define each VirtualService backend explicitly, I'd like to include all services from that namespace, for example:

"backends": [
    { "virtualService": { "virtualServiceName": "*.namespace.mesh.local" }
]

Are you currently working around this issue? How are you currently solving this problem?

Today there is no workaround for this issue. Customers need to explicitly state each backend in the VirtualNode API. Some customers may have custom automation or scripts which automatically set VirtualNode backends.

Additional context Anything else we should know?

It's worth noting that there's some risk in accidental exposure of backend services to a VirtualNode that may not require them. For example, if a customer specifies their wildcard too broadly, they could end up with a very large amount of services qualifying for backends, which would result in some performance degradation and increase availability risk of their services.

ntwaddell commented 5 years ago

That would be cool

hscheib commented 4 years ago

I just implemented a load tester app to use during canary deploys, and if I could set the default to allow it to hit all backends in my mesh, that would be awesome .

kiranmeduri commented 4 years ago

113 is also related to this.

kevinten10 commented 2 years ago

Hi, is there any progress?

nwsparks commented 2 years ago

another use case here is that there seems to be a limit of 50 backends, for very large deployments this is not sufficient.

there does seem to be a quota for it but I was told by aws support that 50 is a hard limit and it cannot be increased.