专业的编程技术博客社区

网站首页 > 博客文章 正文

「持续部署CD」的部署策略(持续部署的英文)

baijin 2024-10-09 07:58:58 博客文章 12 ℃ 0 评论

「持续集成 Continuous Integration」

「持续交付 Continuous Delivery」

「持续部署 Continuous Development」

持续部署的价值

持续部署作为持续集成的延伸;以持续部署与持续交付的优势为根基,可以用自动化部署的手段,将软件功能频繁地进行交付(部署到生产环境);是实现Develops闭环的核心流程

  • 更多与真实客户互动,从而快速调整产品方向
  • 变更频率更高,更能适应变化
  • 每次变更规模小,降低发布风险
  • 单次部署成本低,且趋于稳定
  • 出现问题易于定位,易修复,并且能快速更正


持续集成,持续交付,持续部署的主要区别

持续集成:核心是功能及时更新

持续交付:核心是功能的可靠性

持续部署:核心是用户使用功能

部署策略:蓝绿部署「Blue/Green Development」

特点:无需停机,风险小

策略:老版本不停,新版本部署,测试OK后切换流量到新版本,老版本同时也升级到新版本

部署策略:灰度发布/金丝雀发布「Grayscale release」

先发布一小部分来试探整体是否正常运行,如果正常则进行完全部署,目前仍然是不少成长型技术组织的主流发布方式

部署策略:滚动部署「Rolling update」

特点:用户体验影响小,体验平滑,相对蓝绿部署,更加节约资源

取出一个或多个服务器停止服务,执行更新,并重新投入使用,直至全部更新

  • 是一种在灰度部署上优化的部署方式;也是一种自动化程度相对较高的部署方式;是目前成熟组织的部署方式;
  • 相对蓝绿部署更节约资源,不需要停止某一集群;对外提供服务的版本并非非此即彼;而是在更细的密度下完成版本升级

部署策略:暗部署「Dark Lunch」

  • 在正式发布前,先部署到生产环境。通过应用“开关”技术,用户在无感的情况下应用新特性的功能;通过收集用户的实际操作记录来获得针对这个新特性的反馈数据
  • 还可以通过“流量克隆”,克隆一份给新版本执行,自行收集数据

Coding持续部署简介

  • CODING 持续部署用于把控构建之后的项目发布与部署交付流程。
  • 能够无缝对接上游 Git 仓库、下游制品仓库以实现全自动化部署。同时还支持 Webhook 等外部对接能力,高效集成各种开发、运维工具。
  • 在稳定的技术架构、运维工具等基础上,具备蓝绿发布,灰度发布(金丝雀发布),滚动发布,快速回滚等能力。

Coding 持续部署的主要功能

  • 部署控制台:基于持续交付基金会旗下项目 Spinnaker,CODING 做了大量优化和改造,使控制台能够流畅地对接 CODING 上下游研发工具,提供开箱即用体验。
  • 云账号管理:在云原生的场景下,云账号就是管理云基础设施的凭证,如 Kubernetes 常用凭据、腾讯云 TKE 与腾讯云账号。
  • 权限控制:团队管理员可以通过自定义不同类型的角色来授予对应的部署设置权限,限制并规范成员行为。
  • 发布单:对应流程由运维类角色在部署控制台预置,由开发类角色在项目中提起;将发布单与审批流结合使用,可以方便地实现人工审查,审计,风险控制等功能。

Coding持续部署常用名词

  • 应用:基础的发布单位,常常对应于微服务框架中的一个微服务
  • 制品:是从属于应用的一个概念;用于在发布过程中对应的软件及应用版本
  • 集群:集群内,包含了应用以及运行所需要的应用实例;负载均衡器,防火墙等
  • 发布策略:在发布过程中,通过什么样的策略控制大规模集群中,软件的版本变更
  • 发布流程:一系列发布操作的流程模板,包括:先后依赖顺序,并行,串行等逻辑

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表