API Gateway Identity Crisis – are they replaced by service mesh?
medium.com
medium.com
Why do I need circuit breakers but the guy calling my service doesn’t?
By "stability" I think the parent meant interface stability.
For external access I may need to support the same data formats and schemes for years, but it hardly makes sense for you to have that same burden of API stability on internal systems that you could refactor with less effort.
Coming from inside AWS the fact that we build on the same primitives customers is an advantage. When my service calls EC2 APIs its with the same IAM Principals, Policies, and evaluation that EC2 uses to authorize any other request. Similarly inside my service different components or microservices have their own Principals, and can define access capabilities just as we expect customers to do. That means we’ll find sharp edges or gaps; but those drive improvements for us that solve the same problems our customers will get to sooner or later.
An API gateway can mean API Management, Cluster ingress, an API Gateway pattern, or a Service mesh.
API Management will still be needed, even with a service mesh. And I don’t think the article author thinks they will be replaced.
The service mesh still has ingress needs. North / South.
Internally the service mesh has interconnectivity communication needs. East / West.
You will still need a gateway / load balancer.
Those simple api gateways are replaced or will be replaced, that's probably true.
We spend a lot of time trying to remove choke points from our code but the fact is is that when you need to enforce policy, the checkpoint is the only place you can safely put it.
It’s a tradeoff, to be sure.
That all 3 spaces converge seems inevitable.
Is k8s an indicator of that convergence happening or do I misunderstand this tooling?
It used to be that most people got by with physical servers, or maybe EC2 instances. Everything was relatively static and so configuring the networking was doable by hand. You also could handle things like authentication at the application layer just fine.
As you introduce more services and make things less static by using k8s, you introduce the need for more configuration, more service discovery, etc. Things like authentication and documentation need to be moved up to the API Gateway layer for consistency across the myriad of services people are now running.
I think the convergence is more of a sign of of the ecosystem around containers maturing and realizing that really these things are related and we need all of them so let's put them all together.
I can’t agree. But I also include operational concerns under the umbrella of “business logic”, and the only examples I can think of where I would break that rule with relish relate to ops. From audit trails to security.