Heroku follows this rule by providing an add-ons marketplace. There are more than a hundred add-ons, but sometimes we miss a particular feature. We have to build a micro-service ourself and host it in AWS, and then manually link it with the Heroku app. Normally we have several Heroku environments (production, staging, development), so we are constantly looking for a way to to minimise the devops effort required to maintain numerous self-hosted pluggable micro-services used by these multiple environments. Ideally, we'd wanted a unified deployment procedure for both the Heroku application and its self-hosted pluggable microservices. They would be created when the Heroku app was deployed for the first time, and destroyed when the Heroku app was destroyed, just like other Heroku add-ons do
With this idea in mind, we created DOCKHERO — an add-on which brings Docker's power to Heroku and simplifies pluggable micro-service's lifecycle management.
If you think of Heroku add-ons in general as of boxes with some useful mechanisms inside (like databases, log analyzers, messengers etc.), then Dockhero is an empty box where you can put your own mechanism described by docker-compose.yml