灰度发布在IMS中的应用研究

发布时间:2017-05-01 作者:章璐,穆凌江,杨维(中兴通讯)

      在运营商网络运维过程中,新功能割接上线是一件非常痛苦的事。首先在割接前要进行周密的测试、数据备份,以及失败紧急回退方案演练,其次割接过程必须在晚上零点以后进行,一般要求在第二天凌晨6点前割接完毕,完成业务验证,不能影响第二天的运营。因此,留给真正割接的时间并不多,对各配合方要求都非常高。另外,在割接过程中还可能造成业务的中断。

 

  相比通信行业,互联网产品的新功能上线则显得轻松很多。根据记录,淘宝最近的一次发公告要暂停业务进行系统升级是2008年,之后再未听说淘宝半夜停业务做系统升级。另一互联网产品QQ,经历过大大小小上千次升级,但几乎很少停业务。究其原因,是因为互联网产品有一个特点,在升级的过程中都采用了灰度发布的策略。

 

什么是灰度发布

 

  灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。具体的表现形式是系统发布的新功能由一部分用户先使用,观察这部分用户的使用情况,如果使用情况良好,则逐步扩大范围,将所有用户都迁移到新系统中。

 

  灰度发布是一种小规模尝试,再逐步扩展到海量部署的过程,这是确保终端用户良好感知的重要手段,在不影响大多数用户体验的前提下实现业务快速上线。目前知名的互联网产品(如微信、腾讯QZone等)均采用灰度发布。

 

为什么要实现灰度发布

 

  传统的产品研发模式大致可以分为“产品调研、架构评估、产品启动、需求分析、产品设计、产品开发、产品发布”七大阶段。

 

  这种模式对于范围比较大、周期比较长的项目,尤其是用户体验类项目而言,存在较大的弊端,很可能在没有足够了解用户需求的情况下,定制了过多的辅助功能,不仅拉长了项目周期,而且浪费了过多人力。

 

  灰度上线就是按产品需求优先级,抽出核心需求,在满足用户基本要求的情况下快速上线,通过收集用户的意见,挖掘出用户真正的和潜在的需求,有针对性地进行产品研发(见图1)。

 

 

  

  和传统研发模式相比,灰度发布最大的区别在于将原先一锅粥式的需求和功能点进行了轻重缓急的排序,将项目从原先的单长线作战转化为多迭代短线循环,具体的优点包括:

 

  ● 灵活选择用户参与产品测试

 

  典型的用户选择模式包括:内部用户、种子用户、活跃用户。通过选择不同用户群,对软件功能进行不同层次的体验测试。

 

  ● 减少版本发布风险,降低产品迭代升级所影响的范围

 

  一般网元测试采用模拟器包围测试,使用真实的终端和网络测试的覆盖面小。这就使得现有发布的版本未经过“终端多样性、接入网络多样性、各种网络异常、实际网络组网”等验证,涉及上述配合方面的问题,要等到版本发布后,正式上线后才会暴露问题,大大增加了版本发布的风险。

 

  通过灰度发布,每个功能独立发布上线,可以最大限度进行“端到端验证”,缩短了每个功能的验证周期,降低产品迭代升级所影响的范围。

 

  ● 快速获取用户反馈意见,快速修正

 

  每个功能快速上线,有利于快速收集用户的使用情况,从而实现在新的迭代中的功能修正。

 

  ● 减少服务中断时间,提高用户的满意度

 

  当需要正式上线时,可以将所有用户逐步切换到灰度节点,在普通节点更换新功能后,再重新切回到普通节点,这样可以有效减少服务中断时间。

 

  ● 具有容灾能力,降低全量发布引起的服务器崩溃等风险

 

通过灰度发布,使得功能迭代上线,不需要一次发布很多功能,降低了服务器崩溃的风险。

 

IMS如何实现灰度发布

 

  在IMS网络中,主要的计算网元包括SBC、CSCF、AS等,这些也是版本变更比较频繁的网元,是IMS灰度发布中重点考虑的内容。IMS灰度发布的主要架构如图2所示。

 


 

  ● 灰度管理服务器:负责提供“用户-灰度节点”对应关系的管理,负责将特定用户定向到指定的灰度节点;

 

  ● BOSS代理:负责将灰度管理服务器的指令转换成网元的开通指令,以及将一条灰度指令拆分成多条设置指令,该模块是一个逻辑功能,可以由灰度管理服务器统一实现;

 

  ● EPC-HSS:负责为VoLTE或RCS用户提供灰度设置,为VoLTE终端接入指定灰度节点SBC/P-CSCF;

 

  ● IMS-HSS:负责为VoLTE或RCS用户提供灰度设置,为VoLTE终端接入指定灰度节点S-CSCF、AS;

 

  ● DM:负责为VoLTE或RCS用户提供灰度设置,为VoLTE终端接入指定灰度节点SBC/P-CSCF。

 

  为了实现不同IMS网元的灰度发布,需要采用不同的方式,下面分别介绍主要网元的灰度上线方式。

 

SBC/P-CSCF网元的灰度上线

 

  SBC/P-CSCF是负责终端接入的网元,为了使得终端从特定的SBC/P-CSCF接入,就要求特定用户终端获取的是与普通用户不同的SBC/P-CSCF信息,这需要通过修改IMS以外网元的配置信息实现。例如,设备管理服务器(DM,Device Management)或者EPC分组网络中的HSS。当灰度用户的终端与上述设备交互时,会得到与普通用户不同的SBC/P-CSCF信息,从而实现特定用户使用灰度节点的目的。

 

S-CSCF网元的灰度上线

 

  S-CSCF负责实现用户的认证鉴权和业务触发,为了使灰度用户能由特定S-CSCF提供服务,需要修改IMS中HSS用户签约的基础信息,使得灰度用户在注册时,IMS系统根据HSS的签约信息分配特定的S-CSCF,从而实现S-CSCF网元灰度上线的目的。

 

AS网元

 

  AS负责实现用户的业务逻辑,为了使灰度用户能由特定AS提供服务,需要修改IMS中HSS用户签约的业务触发信息,使得灰度用户在注册和发起业务请求时,都触发到特定的AS上,从而实现S-CSCF网元灰度上线的目的(见图3)。


 

  综上所述,灰度管理服务器只需要与DM、EPC-HSS、IMS-HSS交互就可以实现IMS主要网元的灰度设置,在实际应用中IMS各网元的灰度上线具有可操作性。

 

  随着VoLTE和RCS等基于IMS网络的业务大规模上线,运营商向互联网转型,如何使IMS新功能更加快速、稳定上线是运营商需要考虑的重要课题,而灰度发布是一种有效的实施方案。根据中兴通讯在实际项目中的应用效果分析,使用灰度发布后,单个功能的正式版本平均发布周期从9周缩短到3~4周,版本部署成功率提升23%左右,升级运维人力投入减少40%,用户满意度大幅提升。 

 

  通过实践证明,灰度发布完全可以在IMS中应用,并能给运营商的运维带来效率的提升。