This is effectively what is being sold now but using Kubernetes and Containers instead of Application Servers and J2EE
K8s lets you build “containers” out of whatever existing software happens to be laying around, rather than having to write your services from the ground up for being run in a container.
Now try troubleshooting it.
And again the monitoring and auditing on Kubernetes is significantly better than trying to roll your own. There is detailed logs and metrics up and down the stack.
Clearly, you haven't run much at scale or experienced many problems.
Troubleshoot a network issue through an ingress, kube-proxy and then down to the pod.
Troubleshoot an issue with kube-api or etcd when you have no access to either the master or the etcd cluster.
Troubleshoot a load issue on a node related to IO.
I am not disagreeing that it’s complex and a lot of buzzwords but every day the situation is getting better and better.