Одна вещь, которую я могу порекомендовать, поскольку я делал это несколько раз в производственной среде, - это развертывание Docker Swarm с конечными точками TLS. Эта ссылка говорит о том, как обезопасить рой с помощью сертификата. Это небольшая работа, но она позволит вам определить службы для ваших приложений.
Службы, находящиеся в сети, могут иметь несколько реплик, и всякий раз, когда вы обновляете службу (IE развертывает новый образ), рой будет заботиться о том, чтобы одна из них всегда была в сети.
docker service update <service name> --image <new image name>
Некоторые VPS-серверы на самом деле используют Kubernetes в качестве службы (например, Digital Ocean). Если это так, то это более предпочтительно. Gitlab на самом деле имеет функцию autodevops и может удаленно управлять вашим кластером Kubernetes, но вы также можете вручную развернуть его с помощью kubectl.