




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
灰度发布经验交流 2013年10月 提纲 灰度发布介绍 灰度发布部署的几种方式 手机营业厅客户端灰度发布实现方式说明 架构预设 应用方案讨论 统一门户客户端 承载60项全网业务 提供42项服务功能 覆盖三大智能终端平台 更新12个版本 适配17套主流机型 HD版 WP版 Android iOS版 采用统一规划思路实现版本快速迭代 灰度发布的定义 定义 在传统软件产品发布过程中 例如微软的Windows7的发布过程中 一般都会经历Pre Alpha Alpha Beta Releasecandidate RC RTM GeneralavailabilityorGeneralAcceptance GA 等几个阶段 参考Softwarereleaselifecycle 可以看出传统软件的发布阶段是从公司内部 外部小范围测试 外部大范围测试 正式发布 涉及的用户数也是逐步放量的过程 在互联网产品的发布过程中也较多采用此种发布方式 产品的发布过程不是一蹴而就 而是逐步扩大使用用户的范围 从公司内部用户 忠诚度较高的种子用户 更大范围的活跃用户 所有用户 在此过程中 产品团队根据用户的反馈及时完善产品相关功能 此种发布方式 按照中国特色的叫法被冠以 灰度发布 灰度放量 分流发布 关于 灰度发布 叫法的来源无从考察 只不过按照中国传统哲学的说法来看 很符合中国人中庸的思维模式 自然界所有的事物总是以对称 互补 和谐的形式存在 例如黑与白 阴与阳 正与负 福与祸 在二元对立的元素间存在相互过渡的阶段 所谓 祸兮福所倚 福兮祸所伏 具体到黑与白 在非黑即白中间还有中间色 灰色 于是出现了很多关于灰色的说法 灰盒测试 灰色管理 极力推荐任正非 管理的灰度 灰色收入 灰色地带等等 因此对于灰度发布实际上就是从不发布 然后逐渐过渡到正式发布的一个过程 灰度发布的作用 作用 及早获得用户的意见反馈 完善产品功能 提升产品质量 让用户参与产品测试 加强与用户互动 降低产品升级所影响的用户范围 降低技术上风险 在放出小范围后去发现 解决问题 灰度发布实施要素 实施灰度发布 主要需要考虑策略和部署两个层面的问题 灰度发布的一般步骤 定义目标选定策略 包括用户规模 发布频率 功能覆盖度 回滚策略 运营策略 新旧系统部署策略等筛选用户 包括用户特征 用户数量 用户常用功能 用户范围等部署系统 部署新系统 部署用户行为分析系统 webanalytics 设定分流规则 运营数据分析 分流规则微调发布总结 用户行为分析报告 用户问卷调查 社会化媒体意见收集 形成产品功能改进列表产品完善新一轮灰度发布或完整发布 提纲 灰度发布介绍 灰度发布部署的几种方式 手机营业厅客户端灰度发布实现方式说明 架构预设 应用方案讨论 负载均衡层部署方式 可以只配置一套软负载 硬负载将所有请求都转发到这套软负载上 由软负载代替硬负载实现负载均衡功能 甚至可以去掉硬负载 直接将互联网上请求由从防火墙映射到软负载上 并发较少的系统 并发较多的系统 部署了两套软负载 每个软负载都能控制到下面所有Web服务器节点 且因为之前使用硬负载进行了分流 每个软负载只分摊50 的请求 降低了性能要求 另外 这种部署方式的容灾能力也要更好 不分并发 这种场景可建立在 由于特殊的网络条件 服务器A B与C D在不同机房且无法互通 这时可以将两套软负载分别部署在两个机房 还需建立在硬负载能分别到达两边机房的基础上 使用会话保持分流技术实现无缝升级 无缝升级是指在升级过程中 不中断用户的业务连续性 直接进行服务节点的切换 用户不仅会丢失会话信息 还有可能因新节点上流程的变更导致业务无法继续进行 因此建议采取对旧会话用户采用会话保持分流技术来实现无缝升级 具体步骤如下 在软负载中采用会话保持技术 对用户的请求进行会话管理 当判断请求为新会话时 根据规则校验 负载均衡策略 获取Web服务节点的物理访问地址 按照该地址进行数据转发 并同时将地址保存在会话中 当判断请求为旧会话时 直接从会话取出物理访问地址 以此进行数据转发 一个会话永远只对应一个物理访问地址 不会因分流规则变化而跳转到其它Web服务节点 灰度环境独立于现网环境部署方案 灰度环境独立于现网环境部署 是指在原有的生产环境服务器以外 单独安排若干台服务器 并在这些单独的服务器上部署灰度版本的应用 提供给内部或外部的体验用户使用 灰度体验完成后 再对生产使用的服务器进行常规方式的部署发布 这种部署方案下的灰度环境类似于传统测试中使用的预发布环境 但不同的是此环境和生产环境共用正式生产环境的后台接口和数据库数据等 这种部署方式有以下优点 1 对现网系统的改造较小 灰度环境成本要求较低 较容易实现 2 对原有的常规发布方式的改变较小 在灰度体验完成后 还是可以使用原有的发布方式对公众生产环境进行发布 但是这种部署方式也有一些局限性 1 在灰度体验结束后 无法平滑地将灰度版本推广到全网用户 还是需要对公众环境进行一次传统的中断业务的发布 2 由于是独立于公众生产环境的环境 一般提供的服务器的数量和性能会比较有限 因此相关的灰度体验用户的数量也会有所限制 无法进行大面积用户的灰度体验 优缺点 部署方式 A B双路分服务器部署方案 A B双路分服务器部署就是将原有的生产使用服务器进行分组 分成A B两个集群 然后在不同的服务器集群上分别部署公众环境和灰度环境 然后通过负载均衡层 前置的软件或者硬件负载均衡器 根据相关规则 将目标用户分别引导至不同的服务器集群 A B双路分服务器部署有以下的优点 1 灰度环境和现网环境从物理上隔离开 如果灰度版本存在影响系统性能的问题时 比如内存泄露 程序死循环耗尽CPU资源等故障 不会对现网环境产生影响 2 减少操作复杂度 在同一台服务器上只有一个版本的应用 在执行进程停止 更新 启动等操作时 不容易出现误操作 但同时该部署方式也有以下的不足 对资源投入要求大 如集群不能保证自身可用性 则将影响现网或者灰度环境的正常使用 另外按照公众服务器与灰度服务器的使用范围及切换方式 可以按比例分配资源或对等分配资源 这两种方式各有优缺点 1 按比例分配资源 公众服务器承载大部分用户访问量 灰度服务器仅对小量用户提供服务 需要向全网用户开放使用时 再对公众服务器进行传统的上线操作 此类型对硬件要求不高 成本也较低 但是当灰度服务发布至公共服务器时会有短暂的业务停顿 2 对等分配资源 公众服务器与灰度服务器资源对等 灰度服务器资源也可以承载全量用户 公众环境的用户全面平滑引导到灰度环境 完成灰度环境全面公众化 如果后续有新的发布上线 原公众环境又变为灰度环境 两套环境可以互相交替使用 方便版本迭代发布 如果后续没有新的上线 就将原公众版本的应用也同步成灰度版本 共同向全网提供服务 这种方式的优点是两套环境可以互相平滑切换 快速发布和回退 不中断业务 缺点是需要较多的资源 且灰度发布过程中 会有部分资源闲置 灰度环境和现网环境在相同服务器上部署 灰度环境和现网环境部署在相同的服务器上 使用不同的端口 也通过负载均衡层实现分流 此种方案有如下的优点 1 能充分利用硬件资源 在硬件资源不足的情况下也能进行灰度发布的部署 且不影响正常生产 2 对用户业务请求实现访问资源上的隔离 3 便于系统的上线活动 两个版本彼此影响较小 4 根据各版本访问量的大小 可以灵活分配系统资源 5 单一集群或者单机出现硬件问题 灰度环境及公众环境依然承载能力受到影响 但依然具备一定的可用性 但是这种方案也有一些缺点 1 多个系统运行在同一套服务器上 在系统忙时易出现抢占资源的情况 2 一旦出现硬件问题 将会影响所有版本 优缺点 部署方式 应用层灰度发布中的版本管理 灰度版本管理 是集中管理所有系统的升级包文件 版本号 以实现应用程序的升级 备份 回退 功能上主要分为三大部分 包括 版本备份 校验等基础功能 应用版本管理和灰度版本的分析与查询 灰度版本管理的关键部分在于 在版本升级和回退时 不能影响到用户端业务的连续性 提纲 灰度发布介绍 灰度发布部署的几种方式 手机营业厅客户端灰度发布实现方式说明 架构预设 应用方案讨论 统一门户客户端手机营业厅原有灰度发布系统架构 版本数量 开发 版本发布 平台维护 难度 成本 统一门户客户端的应用支撑平台只有一个版本 需要同时支撑4个正式版本和多个不同功能的灰度版本 这一版本发布架构对于应用支撑平台的版本兼容性及可靠性要求非常高 而且会随着版本数量持续增加开发 版本发布和平台维护的成本 统一门户客户端手机营业厅 硬件拓普现状 客户端灰度发布方案系统架构优化 进程独立 实现正式版本与灰度版本的相对独立 在保障正式版本服务支撑质量的前提下 满足灰度版本发布的需要 实现正式版本之间的相互独立 通过独立的端口通信 实现进程与版本的一一对应 客户端灰度发布 多版本并行发布 架构 针对客户端各版本 在应用支撑平台建立与其一对一关联的服务端版本 应用支撑平台侧的服务端版本 通过端口独立实现进程独立 每个独立进程对一个或多个客户端版本提供服务支撑 某个版本发生的问题不会对其它版本产生影响 客户端灰度发布 多版本并行发布 架构详解 单一进程和端口实现对所有灰度版本的支撑 以控制灰度版本对系统的影响 一个客户端版本对应一个应用支撑平台服务端版本 服务端版本间通过进程和端口实现相互独立 由于已经上线正式运行 且用户规模较大 因此仍然采用原有的服务端程序 以保证服务支撑的连续性和稳定性 历史版本 当前版本 灰度版本 客户端灰度发布优化 系统改造点说明 统一门户客户端的灰度发布系统改造过程涉及贯穿到软 硬件系统的各个方面 这包括 防火墙负载均衡设备WAS接入服务业务支撑服务数据库 BOSS接口服务 客户端灰度发布优化 系统改造点说明 接入部分 所有灰度版本使用9053端口 以和正式版本实现端口通信的相互独立 通过部署配置新的WAS应用服务程序 为灰度测试版本提供接入服务 此灰度版本的应用服务程序独立与原有正式版的接入服务程序 拥有独立的进程 端口 响应资源和线程池 已上线版本不做任何变动 仍通过端口9043接入 原有WAS应用服务器01为其提供接入服务 客户端灰度发布优化 系统改造点说明 接入服务器 同一宿主机对外提供多个服务 客户端灰度发布优化 系统改造点说明3 新客户端版本发布时 需建立与之对应的应用支撑平台版本 应用支撑平台发布新版本时 需要部署包括与新版本对应的所有服务端程序 这包括 接入部分 业务应用服务程序 BOSS接口服务程序 数据库服务程序 配置管理的工作量增加 与客户端有多个版本一样 服务端程序编译时 需要以应用支撑平台版本号予以区分 同时需要建立多个开发分支 规划版本策略 适时停用旧有 灰度版本 提纲 灰度发布介绍 灰度发布部署的几种方式 手机营业厅客户端灰度发布实现方式说明 架构预设 应用方案讨论 架构预设 自动化部署 发布 业务网管 核心调度模块 软负载 灰度发布管理门户 灰度发布引擎 接口集成 统一登录 灰度发布系统 Multi phaseReleaseSystem 整体解决方案 灰度发布引擎 规则解析 高速缓存 发布规则管理 发布执行 业务拨测 告警信息采集 业务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国童颜针项目创业计划书
- 中国激光诊断与治疗设备项目创业计划书
- 中国AUTOSAR软件项目创业计划书
- 中国可视电话电商项目创业计划书
- 中国高净值人群海外医疗项目创业计划书
- 中国5G无线网络切片项目创业计划书
- 乐理音程考试真题及答案
- 收集春节快乐的小故事
- 2025企业合同管理规范样本
- 2025合同纠纷案例:不良金融债权转让合同争议解析
- 回迁楼房买卖合同协议书
- 营业执照转让合同范本
- 劳务外包劳务合同范本
- Unit 5 Here and Now Section B 1a-1d 课件 2024-2025学年人教版七年级英语下册
- 文旅产业项目商业计划书
- 国家开放大学2025年《创业基础》形考任务3答案
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 司炉岗位应急处置卡(燃气)参考
- 最新四川省教师资格认定体检表
- 儿童手机设计报告
- 防眩板施工组织设计
评论
0/150
提交评论