Estamos falando de contêineres do Docker como sysdig, consul, fluentd, mesos-slave etc. que estamos executando em quase todas as máquinas.
Atualmente estamos usando o Upstart do Ubuntu e o Fleetctl do CoreOS. Estamos migrando para o Ubuntu 18.04 LTS e considerando atualmente se converteremos a configuração em:
O Systemd pode fazer verificações de saúde e trazer automaticamente processos que morreram on-line. É também o mais semelhante ao Upstart que usamos intensamente. Nossos arquivos de configuração do Upstart são gerados a partir do cloud-config assim:
- >
/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
Usamos o AWS CloudFormation para colocar as máquinas virtuais on-line.
Não podemos usar uma estrutura de orquestração de contêiner real (já usamos Maratona / Mesos) porque esses serviços precisam estar em execução em cada host e antes da execução de Maratona / Mesos.
Qual solução faz mais sentido? Converter esses arquivos para systemd ou começar a usar o docker-compose, apesar de já estar usando o Marathon no Mesos?