灰度发布探索与实践.docx
《灰度发布探索与实践.docx》由会员分享,可在线阅读,更多相关《灰度发布探索与实践.docx(8页珍藏版)》请在第一文库网上搜索。
1、随着智能终端及移动通信技术的快速发展,消费互联网已经渗透到社会生活的各个领域,人们对产品服务的要求也越来越高。一方面,银行在“互联网+”生态中扮演着越来越重要的角色,各行业对银行也提出了更高的服务标准和要求;另一方面,银行在从集中式架构向分布式架构转型的过程中,IT系统规模持续增长,系统架构、关联依赖关系日益复杂,如果版本存在缺陷,采用传统的版本发布模式将会直接影响到全部用户。针对以上情况,为控制生产风险,确保金融稳定,工商银行通过版本灰度发布模式,将版本缺陷影响控制在有限的范围内,同时,结合业界实践经验及自身的企业环境,构建了适宜的灰度发布体系。一、业界现状为了控制版本缺陷的业务影响范围,业
2、界普遍采用渐进式的发布过程,灰度版本的对客范围通常是一个逐步扩大的过程,如白名单用户一企业集团内部用户一生产特定用户一全量用户。通过阶梯扩大试点用户范围的方式,实现了对新版本质量的全方位验证,同时将验证过程中发现的问题控制在较小的范围内并快速响应,及时完成版本的修复或回退。根据不同的应用部署模式可灵活实现对版本发布范围的控制。业界主要通过以下几种部署方式实现应用新版本的灰度发布。1金丝雀部署金丝雀部署是指先更新一小部分(如2%)服务器,然后对应用系统进行测试验证。如果验证通过,则继续更新剩余部分的服务器版本,否则进行版本回滚。金丝雀部署的优势是影响面小,出现问题时只会影响很小一部分用户,适合对
3、新功能信心不足或对服务可用性要求比较高的场景。2 .滚动部署滚动部署更像是金丝雀部署的增强版,在新版本经过灰度验证之后,逐渐增大灰度部署的范围,直到全部服务器都更新到新版本,在部署过程中需要支持平滑切换。滚动部署通常是分批次的,比如第一批为10%,第二批为30%,第三批为100%。与金丝雀部署相比,滚动部署需要自动化部署工具以及完善的路由机制支持,以保证用户体验足够平滑,发布和回滚时间也会更长。3 .蓝绿部署蓝绿部署是指同时维护两套规格相同的生产环境一一蓝色环境和绿色环境,而生产上只有一个环境负责提供完整的服务,另一个环境则处于完全空闲状态。当部署新版本服务时,首先在空闲环境进行部署和验证,当
4、验证通过后,再通过操作路由将客户端流量切换至新版本环境,而原先的环境则变为空闲环境,依次循环交替。二、工商银行灰度发布体系建设根据近两年灰度发布领域的探索与实践,工商银行结合行内应用架构现状及业界版本部署模式,形成了适合于自身系统的灰度发布体系,为版本发布质量保驾护航。工商银行的灰度发布体系主要从标准化规范、标准化管理流程、自动化工具等方面进行建设。1 .灰度发布规范工商银行主要从两个方面对灰度发布规范进行建设,包括应用系统在设计、运维等研发阶段中实施灰度发布需遵循的技术规范和最佳实践指引。灰度发布技术规范方面,一是明确了灰度发布的基本原则,根据应用的实际情况建立对应的灰度发布目标,实施与目标
5、相对应的灰度发布模型;二是在进行灰度发布设计时,针对应用的灰度用户策略设计、灰度流量引流设计及灰度发布过程的设计进行较为明确的规定,确保应用设计符合开发规范,提升灰度实施效果;三是在灰度实施过程中,对灰度验证、灰度回退及上下游关联等场景进行明确规范,实现了灰度发布全生命周期的闭环管理。灰度发布最佳实践指引方面,一是以单独“端”的维度进行架构设计指引,如前端客户端App、后端应用服务器、数据库服务器;二是从灰度交易全流程的维度提供架构设计参考,如全交易链路灰度发布、灰度发布自动化设计等。工商银行通过典型的灰度发布架构设计,有效降低了各应用系统实施灰度发布的成本,提升了灰度设计标准化程度。2 .灰
6、度发布管理制度灰度发布的实施贯穿于整个项目周期,从需求制定到灰度版本正式对外提供服务,各项目阶段均涉及项目角色的管理工作。针对以上情况,工商银行结合行内研发管理制度及灰度发布工作的具体要求,制定了独立的灰度发布管理制度,从研发管理的角度对灰度发布工作进行了明确的分工,并提出了相应的要求。3 .灰度发布支撑系统灰度发布工作涉及的角色多、流程复杂,相关支撑系统的能力决定了灰度发布实施工作的最终效果及实施效率。工商银行根据服务对象的不同,主要建设了两类系统,用以灰度发布的实施:一是灰度发布实施的过程管控系统,从灰度发布需求拆分、灰度策略的资产设计到新版本灰度流量爬坡验证、灰度版本全面对客等均实现了应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 灰度 发布 探索 实践