Ugh, this level of abstraction is dizzying. Now you telling me I need Crane to deploy to Rancher to manage Kubernetes to orchestrate Docker containers to run my app?
Well, almost. We don't use Kubernetes, but Cattle (which is part of Rancher.)
I don't entirely understand your point though; is our level of abstraction too low? With Heroku (preference of the OP) all of this, the containerization, the orchestration, the deploy tool, is abstracted away. Is that what you'd prefer?