22 | 发布系统的核心架构和功能设计
王潇俊
该思维导图由 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
《持续交付 36 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 九脉一谷老师,我想问一下一个系统符合哪些条件或者通过哪些指标验证后才能是一个可以正式发布?携程对系统发布方面有具体的指标参数要求吗?
作者回复: 携程宽泛的讲可以发布的指标就是这个版本被QA签核为可发布。具体的测试内容由各应用自己确定,下一篇会讲一下携程有一个统一的中间件来处理发布时的检验
2018-08-231 - 铭熙怎么理解堡垒?有什么特别的作用吗?如果只有一个DeploymentTarget,而这个DeploymentTarget失败了,那全局的状态是认为失败吗?
作者回复: 堡垒就是预发布实例,它就是生成集群的一个子集,但发布后,首先不接入外部正式流量,做自测用,自测通过后才接入生产流量 一个实例的话,失败就全失败了,不过生产集群只有一个实例,本身架构是不是就有点问题呢?至少要个备机吧
2018-08-23 - chon这一篇讲的很全面,很好。请教一下,tairs能完全支持和覆盖您这一篇讲到的理论方法吗?2020-06-091
收起评论