Jenkins CI/CD几种发布方式

Jenkins CI/CD几种发布方式

Scroll Down

蓝绿发布

项目逻辑上分为AB组,在项目升级时,首先把A组从负载均衡中摘除,进行新版本的部署
B组仍然继续提供服务,A组升级完成上线,B组从负载均衡中摘除
特点:

  • 策略简单
  • 升级/回滚速度快
  • 用户无感知,平滑过渡

缺点:

  • 需要两倍以上服务器资源
  • 短时间内浪费一定资源成本
    cicd1.png

灰度发布

灰度发布:只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没有什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来

  • 特点:
    保证整体系统稳定性
    用户无感知,平滑过渡
  • 缺点:
    自动化要求高
    cicd2.png
    k8s中的落地方式
    cicd3.png

滚动发布

滚动发布:
每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版升级新版本

  • 特点:
    用户无感知,平滑过渡
  • 缺点:
    部署周期长
    发布策略较复杂
    不易回滚
    cicd4.png

发布流程

cicd5.png

cicd6.png