if you arent familiar with the "jargon" in this post then you're probably not in a position to reasonably judge whether its "overly complex". Most everything in here would be familiar to anyone with experience working on modern high volume web properties.
Regardless of whether Service Mesh is overly complex, the industry seems to have entered an era of "Complexity Worship". I was speaking to some engineers at a small startup the other day with only a handful of customers. They have invested significant resource building there own K8S cluster, ensuring it runs on multi-cloud etc, sounds a lot like premature optimisation.
I have a theory that Complexity Worship is a product of boredom by CS degrees who would rather not spend their time implementing WYSIWYG editors or whatever anymore.
That's insane. I feel like at a small scale you get a product out the door and refine it until you start growing. It's really not hard to use ansible to deploy your stuff onto EC2 and add more nodes as you grow.
But, K8s is the new hotness and people are going to use it.
The original architecture seemed overly complex IMO. Maintaining a fleet of HAProxys and their configs seems daunting... it seems like they're gaining both flexibility (maintaining configs easily) and observability (request/response metrics for thirft requests)
Per-service proxy deployments are a bit complex for the infrastructure but provide a nice abstraction for the service and service developers themselves. The configuration scheme is indeed daunting, which is what we're hoping Envoy and its xDS APIs + centralized configs can help us solve for developer teams.