<p>Among Kubernetes, OpenShift, Docker Swarm and Docker DataCenter deployment tools which all are having automatic rollback in case of any failure happens?</p>

<p>All of them have a sort of rollback mechanism built-in with commands available for you to control. However, these are not fully automated and you might have to do it manually. For Kubernetes, here is the related github <a href="https://github.com/kubernetes/kubernetes/issues/23211" rel="nofollow noreferrer">issue</a> and another <a href="https://github.com/docker/swarmkit/issues/1085" rel="nofollow noreferrer">issue</a> for Swarm. Docker DataCenter use Swarm already.</p>

<p>Rollback documentations I was able to find:</p>

<ul>
<li>Kubernetes: <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-back-a-deployment" rel="nofollow noreferrer">Rolling Back a Deployment</a></li>
<li>Swarm: <a href="https://docs.docker.com/engine/swarm/services/#roll-back-to-the-previous-version-of-a-service" rel="nofollow noreferrer">Roll back to the previous version of a service</a> (features <code>--update-delay</code>) </li>
<li>OpenShift: <a href="https://docs.openshift.com/enterprise/3.1/dev_guide/deployments.html#rolling-back-a-deployment" rel="nofollow noreferrer">Rolling Back a Deployment</a></li>
</ul>
