持续交付 36 讲
王潇俊
携程系统研发部总监
39682 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
开篇词 (1讲)
结束语 (1讲)
持续交付 36 讲
15
15
1.0x
00:00/00:00
登录|注册

22 | 发布系统的核心架构和功能设计

附加问题考虑
发布流程控制
核心模型设计
高效的发布系统架构
状态流转
发布流程
DeploymentTarget
DeploymentBatch
Deployment
DeploymentConfig
Group
数据更新方式
Controller
Roll Engine
思考题
总结
降级机制
提升发布速度
刹车机制
发布流程及状态流转
发布系统核心模型
发布系统架构
主题:发布系统的核心架构和功能设计
作者:王潇俊
实例:发布系统的核心架构和功能设计

该思维导图由 AI 生成,仅供参考

你好,我是王潇俊。我今天分享的主题是:发布系统的核心架构和功能设计。
我在分享《发布系统一定要注意用户体验》这个主题时,介绍了从用户体验的角度出发,设计一套发布系统的设计理念,以及具体实现。但是,用户体验设计得再好,后端系统无法支持,也就如同巧妇难为无米之炊。
截止到目前,携程一共有 7000 多个应用,平均每周生产发布 8000 多次,而测试环境的发布平均每周要 40000 多次,如果发布系统没有一个清晰的架构设计,完成这样艰巨的任务是难以想象的。
所以,今天我就从核心架构和功能设计的角度,和你聊聊如何设计一套发布系统。

发布系统架构

作为整个持续交付体系中极为重要的一个环节,应用的发布是提升交付效率的关键。高效的发布系统架构应该是清晰的、健壮的、低耦合的,从而达到在最糟糕的情况下也能运作的目的。
携程在发布系统这件事上也不是一蹴而就,在经历了各种尝试和努力后,最终设计出了一套分布式、高可用、易扩展的发布系统,其系统架构如图 1 所示。
图 1 携程发布系统的系统架构
Roll Engine,即发布引擎,主要负责创建发布批次,按批次粒度实施部署策略,通过异步方式调用 Salt Master 服务,再分发到各个 Agent 节点上执行部署任务。真正的单机部署脚本会根据不同的应用或机型进行分发和定制。而 Controller ,则作为接收外部指令和读写数据的控制器。当然,对于一些对外的通知事务,发布系统会采用消息机制向外广播。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

携程发布系统设计与功能实现 携程王潇俊分享了携程发布系统的核心架构和功能设计。该系统采用清晰、健壮、低耦合的分布式设计,核心模型包括Group、DeploymentConfig、Deployment、DeploymentBatch和DeploymentTarget。发布流程采用状态机控制状态流转,保证发布过程的顺利进行。刹车机制保证了发布系统的高容错性,采用Quick and Dirty的发布方式,并提供了失败率计算与控制。文章还介绍了提高发布速度的方法,包括搭建发布包专用的存储系统和统一提供点火入口。此外,发布系统还具备降级机制,能够独立完成任何发布应用的任务。总体而言,该文章详细介绍了携程发布系统的设计思路和实现细节,对于想要了解发布系统架构和功能设计的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《持续交付 36 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 九脉一谷
    老师,我想问一下一个系统符合哪些条件或者通过哪些指标验证后才能是一个可以正式发布?携程对系统发布方面有具体的指标参数要求吗?

    作者回复: 携程宽泛的讲可以发布的指标就是这个版本被QA签核为可发布。具体的测试内容由各应用自己确定,下一篇会讲一下携程有一个统一的中间件来处理发布时的检验

    2018-08-23
    1
  • 铭熙
    怎么理解堡垒?有什么特别的作用吗?如果只有一个DeploymentTarget,而这个DeploymentTarget失败了,那全局的状态是认为失败吗?

    作者回复: 堡垒就是预发布实例,它就是生成集群的一个子集,但发布后,首先不接入外部正式流量,做自测用,自测通过后才接入生产流量 一个实例的话,失败就全失败了,不过生产集群只有一个实例,本身架构是不是就有点问题呢?至少要个备机吧

    2018-08-23
  • chon
    这一篇讲的很全面,很好。请教一下,tairs能完全支持和覆盖您这一篇讲到的理论方法吗?
    2020-06-09
    1
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部