Allow multiple docker containers to be provisioned in a single package


Use case

We are developing a number of software components, each of which is made up of a number of microservices packaged as docker containers.

Taking a simple example I might have a "logging" component which is made up of three docker containers: elasticsearch, logstash and kibana.

We want to allow our users to instantiate services at a component level rather than at a service level (noting that in doing that I may still want to allow the users to control factors such as the number of elasticsearch containers stood up)

Current solution

We are currently using Mesos and Marathon directly (well supplied via We have wrapped up the groups of services into Marathon groups and can deploy them by POSTing json files to the /groups endpoint in Marathon.

My current understanding is that if I wanted to store the definitions of the components in a DC/OS universe I'd need to do this at the service level rather than at the component level.

What would we like to be able to do

We would love to be able to expose each of these components as a package in DC/OS allowing the user to simply select and then install them. We would need to be able to specify dependencies between the components as there are some dependencies that exist.

This would be a hugely powerful concept allowing users to take advantage of our components and their published interfaces without having to deal with the underlying services (some components can have many services forming them)


Ravi Yadav