Microservices 如何在没有docker的情况下实现滚动发布更新/回滚?

Microservices 如何在没有docker的情况下实现滚动发布更新/回滚?,microservices,devops,continuous-deployment,Microservices,Devops,Continuous Deployment,由于一些限制,我不能使用docker,更不用说docker编排工具,如docker Swarm和Kubernetes 我仍然希望实现一个基本的CI/CD过程 更具体地说,我希望有一个系统能够部署新的版本,但也可以监控我的服务,即进行健康检查,如果出现故障,它将重新部署服务或回滚到以前的版本 我可以使用哪些工具?对于堆栈上的基本CI/CD,最好是由Ansible之类的工具设置的bash脚本。如果你在云上,需要大到远远超出BASIC,那么考虑SPNNECK,这将是VM级别上不可变的基础设施方法。 请

由于一些限制,我不能使用docker,更不用说docker编排工具,如docker Swarm和Kubernetes

我仍然希望实现一个基本的CI/CD过程

更具体地说,我希望有一个系统能够部署新的版本,但也可以监控我的服务,即进行健康检查,如果出现故障,它将重新部署服务或回滚到以前的版本


我可以使用哪些工具?

对于堆栈上的基本CI/CD,最好是由Ansible之类的工具设置的bash脚本。如果你在云上,需要大到远远超出BASIC,那么考虑SPNNECK,这将是VM级别上不可变的基础设施方法。 请注意,在任何情况下,这都是上一代方法。但是您的bash脚本和基本案例工具可能如下所示:

负责调配的助理/厨师长 服务发现顾问-您也可以在那里进行基本的健康检查 一些负载平衡工具,如haproxy、nginx、traefik cron上的bash脚本将按照以下方式工作:

提取fat jar的指定版本,启动spring引导过程,进行健康检查,在Consor上注册服务 如果一切正常,则将负载平衡器(即haproxy)切换到此新进程,然后终止旧进程 在x分钟内进行另一次检查,如果有问题,是否回滚 这里,concur将用于跨多个节点进行同步


再次注意,这是上一代方法。现代容器编排工具为您提供了很多这方面的功能,因此您无需编写所有脚本。

这可能是一个不好的建议,但您可以重新构建基础。Docker等人只是linux容器和一堆管理它们的代码。您能运行linux容器并编写自己的管理引擎吗?您可以阅读Docker源代码,因为它是免费提供的。您可以指定您的堆栈吗?否则这个问题太笼统了。一般回答-是的,可以,但必须依赖特定于堆栈的工具。@taleodor、Java、Spring Boot、MySQL、Linux