Для создания среды по обеспечению развертывания, запуска и управления приложениями я бы предложил использовать Kubernetes в Google Cloud. Данный программный комплекс поддерживает контейнеры, имеет средства для автомасштабирования (Compute Engine Autoscaling). Так же имеется встроенный Role-Based Access Control (Google IAM), который обеспечивает безопасное хранение паролей/ключей и кастомный доступ к необходимым сервисам.
Для обоснования решения попробуем сравнить конкурентные продукты с K8S:
- DokerSwarm не иммеет коробочного решения для автомасштабирования
- DockerSwarm работает только с контейнерами docker
- в DockerSwarm нельзя использовать json для конфигурации
- Nomad больше заточен на работу с job-ами (управление кластером и планирование), в которых описано желаемое состояние рабочих нагрузок и текущее. (это могут быть виртуализированные, контейнерные и автономные, микросервисные и пакетные приложения, включая Docker, Java, Qemu и другие)
- Nomad принимает описание конфигурации в своём формате, HCL.
- Nomad и DockerSwarm не имеют шаблонизатора аналогично Helm у k8s.
- в Nomad нет нативного автообнаружения сервисов, для этого требуется отдельый инструмент Consul.
- Nomad и DockerSwarm не имеют разделения через пространства имён.
- ApacheMesos предназначен для обработки различных типов рабочих нагрузок, которые могут быть как контейнерными, так и неконтейнерными. в то время как k8s заточен только на контейнерные приложения.