1. Mesos dependency 2. Security (Firewall) settings 3. DNS settings (You need the FQDN to resolve from each part of the system) 4. Dynamic load balancing (ELB bridge, Nginx Bridge) 5. No control over the underlying cluster, so to actually scale your app, you will need to scale your cluster first.
Those are just off the top of my head. I am using Marathon every day but I still carry a lot of pain frm the first days/weeks of using it.
Lets say I have a cluster of 2 machines.
I deploy my Docker container using Marathon, the constraints is that it's unique per machine.
Now, I want to scale my app to 30 containers.
Without Marathon controlling Amazon APIs and actually scaling my underlying cluster to 30 machines first, the scale will never happen.
This creates a disconnect between scaling strategies.