We are talking about Docker containers as sysdig, consul, fluentd, mesos-slave, etc. that we are running on almost all machines.
Currently we are using Ubuntu's Upstart and CoreOS's Fleetctl. We're migrating to Ubuntu 18.04 LTS and currently considering whether to convert the configuration to:
- Systemd or
- Docker-compose
Systemd can do health checks and automatically bring back processes that died back online. It's also the most similar to Upstart that we use heavily. Our Upstart configuration files are generated from cloud-config like this:
- >
/usr/local/bin/generate-docker-upstart fluentd registry/fluentd:1.0.1
-e HOST=elasticsearch
-e PORT=9200
-e INDEX=fluentd
-e NODE=`hostname -s`
-e ROLE=app
-e ENVIRONMENT={{Ref:Environment}}
-e TENANT={{Ref:Tenant}}
-p 24224:24224
--name \$NAME \$IMAGE
We use AWS CloudFormation to bring the virtual machines online.
We cannot use a real container orchestration framework (we already use Marathon/Mesos) because these services have to be running on each host and before Marathon/Mesos run.
What solution makes most sense? Convert these files to systemd or start using docker-compose, despite already using Marathon on Mesos?