如何在没有docker的情况下实现滚动版本更新/回滚?

问题描述 投票:0回答:1

由于某些限制,我无法使用Docker,更不用说Docker编排工具,如Docker Swarm和Kubernetes。

我仍然想实现基本的CI / CD流程。

更具体地说,我希望有一个系统可以部署新版本,但还可以监视我的服务(即进行运行状况检查),并在出现故障的情况下将服务重新部署或回滚到以前的版本。

我可以使用哪些工具?

microservices devops continuous-deployment
1个回答
0
投票

对于堆栈上的基本CI / CD,最好的选择是Ansible之类的bash脚本。如果您在云上并且需要进行大规模扩展(远远超出基本范围),请考虑使用Spinnaker(这在VM级别上是不变的基础架构方法)。

注意,无论如何,这是上一代方法。但是您的bash脚本和基本情况的工具可能看起来像这样:

  1. Ansible /部署厨师
  2. 服务发现咨询-您还可以在其中进行基本的健康检查
  3. 某些负载平衡工具,例如haproxy,nginx,traefik

并且您在cron上的bash脚本将按以下方式工作:

  1. 拉出指定版本的胖子罐,启动弹簧启动过程,进行健康检查,并在领事上注册服务
  2. 如果一切正常,则将负载均衡器(例如haproxy)切换到该新进程,然后终止旧进程
  3. 在x分钟内再次检查,如果有问题-会回滚

这里Consul将用于在多个节点之间进行同步。

同样,请注意,这是上一代方法。现代容器编排工具可以为您完成很多此类工作,因此您无需编写所有脚本。

© www.soinside.com 2019 - 2024. All rights reserved.