您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 灰度发布经验交流-张远敏-绿点
灰度发布经验交流2013年10月2提纲灰度发布介绍灰度发布部署的几种方式手机营业厅客户端灰度发布实现方式说明架构预设、应用方案讨论统一门户客户端承载60项全网业务,提供42项服务功能覆盖三大智能终端平台更新12个版本,适配17套主流机型4采用统一规划思路实现版本快速迭代5灰度发布的定义定义在传统软件产品发布过程中(例如微软的Windows7的发布过程中),一般都会经历Pre-Alpha、Alpha、Beta、Releasecandidate(RC)、RTM、GeneralavailabilityorGeneralAcceptance(GA)等几个阶段(参考Softwarereleaselifecycle)。可以看出传统软件的发布阶段是从公司内部-外部小范围测试外部大范围测试-正式发布,涉及的用户数也是逐步放量的过程。在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户-忠诚度较高的种子用户-更大范围的活跃用户-所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,按照中国特色的叫法被冠以“灰度发布”、“灰度放量”、“分流发布”。关于“灰度发布”叫法的来源无从考察。只不过按照中国传统哲学的说法来看,很符合中国人中庸的思维模式:自然界所有的事物总是以对称、互补、和谐的形式存在,例如黑与白、阴与阳、正与负、福与祸。在二元对立的元素间存在相互过渡的阶段,所谓“祸兮福所倚,福兮祸所伏”。具体到黑与白,在非黑即白中间还有中间色——灰色。于是出现了很多关于灰色的说法:灰盒测试,灰色管理(极力推荐任正非:管理的灰度),灰色收入,灰色地带等等。因此对于灰度发布实际上就是从不发布,然后逐渐过渡到正式发布的一个过程。6灰度发布的作用作用及早获得用户的意见反馈,完善产品功能,提升产品质量;让用户参与产品测试,加强与用户互动;降低产品升级所影响的用户范围;降低技术上风险,在放出小范围后去发现、解决问题。7灰度发布实施要素实施灰度发布,主要需要考虑策略和部署两个层面的问题。分支策略设计分支策略组合整体策略部署实施方案设计部署实施8灰度发布的一般步骤1.定义目标2.选定策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等3.筛选用户:包括用户特征、用户数量、用户常用功能、用户范围等4.部署系统:部署新系统、部署用户行为分析系统(webanalytics)、设定分流规则、运营数据分析、分流规则微调5.发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表6.产品完善7.新一轮灰度发布或完整发布9提纲灰度发布介绍灰度发布部署的几种方式手机营业厅客户端灰度发布实现方式说明架构预设、应用方案讨论10负载均衡层部署方式可以只配置一套软负载,硬负载将所有请求都转发到这套软负载上,由软负载代替硬负载实现负载均衡功能;甚至可以去掉硬负载,直接将互联网上请求由从防火墙映射到软负载上。并发较少的系统并发较多的系统部署了两套软负载,每个软负载都能控制到下面所有Web服务器节点。且因为之前使用硬负载进行了分流,每个软负载只分摊50%的请求,降低了性能要求。另外,这种部署方式的容灾能力也要更好。不分并发这种场景可建立在,由于特殊的网络条件,服务器A、B与C、D在不同机房且无法互通,这时可以将两套软负载分别部署在两个机房。(还需建立在硬负载能分别到达两边机房的基础上)。11使用会话保持分流技术实现无缝升级无缝升级是指在升级过程中,不中断用户的业务连续性。直接进行服务节点的切换,用户不仅会丢失会话信息,还有可能因新节点上流程的变更导致业务无法继续进行。因此建议采取对旧会话用户采用会话保持分流技术来实现无缝升级。具体步骤如下:在软负载中采用会话保持技术,对用户的请求进行会话管理。当判断请求为新会话时,根据规则校验、负载均衡策略,获取Web服务节点的物理访问地址。按照该地址进行数据转发,并同时将地址保存在会话中。当判断请求为旧会话时,直接从会话取出物理访问地址,以此进行数据转发。一个会话永远只对应一个物理访问地址。不会因分流规则变化而跳转到其它Web服务节点。12灰度环境独立于现网环境部署方案公众环境WEB服务器应用服务器数据库应用服务器WEB服务器灰度环境负载均衡层灰度环境独立于现网环境部署,是指在原有的生产环境服务器以外,单独安排若干台服务器,并在这些单独的服务器上部署灰度版本的应用,提供给内部或外部的体验用户使用。灰度体验完成后,再对生产使用的服务器进行常规方式的部署发布。这种部署方案下的灰度环境类似于传统测试中使用的预发布环境,但不同的是此环境和生产环境共用正式生产环境的后台接口和数据库数据等。这种部署方式有以下优点:1、对现网系统的改造较小,灰度环境成本要求较低,较容易实现。2、对原有的常规发布方式的改变较小,在灰度体验完成后,还是可以使用原有的发布方式对公众生产环境进行发布。但是这种部署方式也有一些局限性:1、在灰度体验结束后,无法平滑地将灰度版本推广到全网用户,还是需要对公众环境进行一次传统的中断业务的发布。2、由于是独立于公众生产环境的环境,一般提供的服务器的数量和性能会比较有限,因此相关的灰度体验用户的数量也会有所限制,无法进行大面积用户的灰度体验。优缺点部署方式13A、B双路分服务器部署方案公众环境WEB服务器应用服务器数据库负载均衡层WEB服务器应用服务器灰度环境A、B双路分服务器部署就是将原有的生产使用服务器进行分组,分成A、B两个集群,然后在不同的服务器集群上分别部署公众环境和灰度环境,然后通过负载均衡层(前置的软件或者硬件负载均衡器)根据相关规则,将目标用户分别引导至不同的服务器集群。A、B双路分服务器部署有以下的优点:1、灰度环境和现网环境从物理上隔离开,如果灰度版本存在影响系统性能的问题时,比如内存泄露、程序死循环耗尽CPU资源等故障,不会对现网环境产生影响。2、减少操作复杂度,在同一台服务器上只有一个版本的应用,在执行进程停止、更新、启动等操作时,不容易出现误操作。但同时该部署方式也有以下的不足:对资源投入要求大;如集群不能保证自身可用性,则将影响现网或者灰度环境的正常使用。另外按照公众服务器与灰度服务器的使用范围及切换方式,可以按比例分配资源或对等分配资源,这两种方式各有优缺点:1)按比例分配资源:公众服务器承载大部分用户访问量,灰度服务器仅对小量用户提供服务。需要向全网用户开放使用时,再对公众服务器进行传统的上线操作。此类型对硬件要求不高,成本也较低,但是当灰度服务发布至公共服务器时会有短暂的业务停顿。2)对等分配资源:公众服务器与灰度服务器资源对等,灰度服务器资源也可以承载全量用户。公众环境的用户全面平滑引导到灰度环境,完成灰度环境全面公众化。如果后续有新的发布上线,原公众环境又变为灰度环境,两套环境可以互相交替使用,方便版本迭代发布;如果后续没有新的上线,就将原公众版本的应用也同步成灰度版本,共同向全网提供服务。这种方式的优点是两套环境可以互相平滑切换,快速发布和回退,不中断业务。缺点是需要较多的资源,且灰度发布过程中,会有部分资源闲置。14灰度环境和现网环境在相同服务器上部署数据库负载均衡层Web服务器灰度环境(10%用户)公众环境(90%用户)应用服务器灰度环境应用程序公众环境应用程序用户Web服务器灰度环境(10%用户)公众环境(90%用户)应用服务器灰度环境应用程序公众环境应用程序灰度环境和现网环境部署在相同的服务器上,使用不同的端口,也通过负载均衡层实现分流。。此种方案有如下的优点:1、能充分利用硬件资源,在硬件资源不足的情况下也能进行灰度发布的部署,且不影响正常生产;2、对用户业务请求实现访问资源上的隔离;3、便于系统的上线活动,两个版本彼此影响较小;4、根据各版本访问量的大小,可以灵活分配系统资源。5、单一集群或者单机出现硬件问题,灰度环境及公众环境依然承载能力受到影响,但依然具备一定的可用性。但是这种方案也有一些缺点:1、多个系统运行在同一套服务器上,在系统忙时易出现抢占资源的情况;2、一旦出现硬件问题,将会影响所有版本。优缺点部署方式15应用层灰度发布中的版本管理灰度版本管理流程升级环境管理灰度发布阶段公众一键升级阶段生产升级管理灰度升级管理版本库管理管理员选择灰度发布上传升级包产生临时版本信息灰度环境升级灰度版本提高产生可用新版本多次灰度发布产生稳定的版本选择一键升级选择需要升级的版本集合提取版本内容生产环境升级生产版本提高检查当前环境、校验升级包灰度环境初始生产环境初始升级环境配置灰度版本管理,是集中管理所有系统的升级包文件、版本号、以实现应用程序的升级、备份、回退。功能上主要分为三大部分,包括:版本备份,校验等基础功能、应用版本管理和灰度版本的分析与查询。灰度版本管理的关键部分在于,在版本升级和回退时,不能影响到用户端业务的连续性。16提纲灰度发布介绍灰度发布部署的几种方式手机营业厅客户端灰度发布实现方式说明架构预设、应用方案讨论17统一门户客户端手机营业厅原有灰度发布系统架构应用支撑平台(单一版本)正式版本1.0.0灰度版本1灰度版本n正式版本1.0.5正式版本1.1.0正式版本1.5.0接入模块业务模块BOSS接口模块数据库版本数量开发版本发布平台维护难度/成本统一门户客户端的应用支撑平台只有一个版本,需要同时支撑4个正式版本和多个不同功能的灰度版本。这一版本发布架构对于应用支撑平台的版本兼容性及可靠性要求非常高。而且会随着版本数量持续增加开发,版本发布和平台维护的成本。18统一门户客户端手机营业厅-硬件拓普现状19客户端灰度发布方案系统架构优化-进程独立•实现正式版本与灰度版本的相对独立,在保障正式版本服务支撑质量的前提下,满足灰度版本发布的需要。•实现正式版本之间的相互独立。应用支撑平台正式版本1灰度版本1灰度版本n正式版本2正式版本n接入业务BOSS数据库图例: 网络端口数据库通过独立的端口通信,实现进程与版本的一一对应。20客户端灰度发布(多版本并行发布)架构针对客户端各版本,在应用支撑平台建立与其一对一关联的服务端版本。应用支撑平台侧的服务端版本,通过端口独立实现进程独立,每个独立进程对一个或多个客户端版本提供服务支撑,某个版本发生的问题不会对其它版本产生影响。应用支撑平台正式版本1.0.01.0.51.1.01.5.0灰度版本1灰度版本n正式版本1.6.0正式版本n版本1.5.0版本1.6.0版本n灰度版本版本1.5.0版本1.6.0版本n灰度版本版本1.5.0版本1.6.0版本n灰度版本接入业务BOSS图例正式版本服务进程灰度版本服务进程正式版本数据流灰度版本数据流数据库访问流数据库21客户端灰度发布(多版本并行发布)架构详解应用支撑平台正式版本1.0.01.0.51.1.01.5.0灰度版本1灰度版本n正式版本1.6.0正式版本n版本1.5.0版本1.6.0版本n灰度版本版本1.5.0版本1.6.0版本n灰度版本版本1.5.0版本1.6.0版本n灰度版本接入业务BOSS图例正式版本服务进程灰度版本服务进程正式版本数据流灰度版本数据流数据库访问流数据库单一进程和端口实现对所有灰度版本的支撑,以控制灰度版本对系统的影响。一个客户端版本对应一个应用支撑平台服务端版本。服务端版本间通过进程和端口实现相互独立。由于已经上线正式运行,且用户规模较大,因此仍然采用原有的服务端程序,以保证服务支撑的连续性和稳定性。历史版本当前版本灰度版本22客户端灰度发布优化-系统改造点说明统一门户客户端的灰度发布系统改造过程涉及贯穿到软、硬件系统的各个方面,这包括:•防火墙•负载均衡设备•WAS接入服务•业务支撑服务•数据库/BOSS接口服务23客户端灰度发布优化-系统改造点说明-接入部分所有灰度版本使用9053端口,以和正式版本实现端口通信的相互独立。通过部署配置新的WAS应用服务程序,为灰度测试版本提供接入服务。此灰度版本的应用服
本文标题:灰度发布经验交流-张远敏-绿点
链接地址:https://www.777doc.com/doc-4175868 .html