文 / 中国银行软件中心 王鹏晴 罗皓

引        言

随着无线移动通信技术的快速发展,移动互联网业务成为继宽带技术后互联网发展的一个巨大推力,为移动应用的发展提供了一个新的平台。移动应用以其固有的随身性、可身份识别性,可鉴权性等独特优势,为传统互联网业务提供了广阔的发展空间和可持续发展的商业模式,因此对一个企业的重要性愈发凸显。移动应用的普及使得用户可以“随时、随地、随心”地享受互联网业务带来的各种便捷,比如更丰富的企业业务种类、更多的企业个性化服务和更高的企业服务质量保证。

在新的商业模式下,对移动应用开发工作的要求也越来越多,标准也越来越高,一款优秀的移动端APP不仅仅在于实现了相应的业务功能,能够满足用户的正常使用;还在于它能够安全、稳定、高效地响应用户的请求,使用户体验达到一个高水平。这样才能留住客户,吸引更多的客户,赢得客户信任,进而提升企业的竞争力,为社会创造更大的价值。

运维领域发展现状

软件产品和传统制造业产品表现形式虽有比较大的差异,但在生产流程中二者还是有诸多相似之处。如果把软件生命周期看作汽车的生命周期,那么开发工程师就是汽车设计及生产人员,负责将软件(汽车)从需求,转为技术设计图纸,最后变为实实在在的产品,主要关注汽车生命周期的前期。运维工程师要采用相应的技术及管理手段,保证软件(汽车)的正常、安全、稳定、高效运行,提升用户(乘客)使用体验。

传统的运维工作侧重于服务端,负责对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,基于日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障。服务端运维,其运维工作更主动,目标更明确,处置手段更丰富。一线运维工程师可以在产品维度直观的看到各节点的硬件性能情况、中间件运行情况和应用软件的可用情况。就算生产环境出现故障,也可以迅速定位问题,采用纵向扩容、横向扩容、故障隔离、应用回滚等一系列应急手段来使产品恢复正常可用状态。同时,服务端运维工程师可以在风险可控的前提下,从容的规划和实施未来的灾备扩容、流量切换、软硬件升级等较复杂的运维动作。

相对于传统的服务端运维,移动端运维还不够成熟。原有的服务端运维手段和方法,在移动端运维过程中可能并不适用。比如,DevOps(Development and Operations,开发运维一体化)在服务端运维领域已经深入人心并且有优秀的实践,但是,在移动端运维领域该如何解读与实践?当用户手机里的APP应用出现了错误,由于这个错误信息在用户侧,不在服务端,运维工程师又该如何得知呢?如果依赖用户投诉,等接到相关信息时,相信这个故障已经影响了相当大基数的用户量。工程师们又如何评估某个APP故障的影响范围是什么?故障到底是和操作系统有关?还是与手机硬件型号有关?当工程师们最后定位了错误的原因,又该如何去修复?毕竟,恢复生产是运维工作的第一要素,服务端问题可以通过升级后台解决,但出问题的APP并不能自动升级,因为它运行在用户的手机里。

所以,在移动应用领域,运维工作有自己独有的特征。如何正确理解,有针对性的去改进现存机制,达到与服务端运维同样的高可用目标,是运维领域一个新的挑战。

移动端运维特征

移动端应用的运维工作存在以下特征:

1.问题发现、暴露慢。移动端应用的问题比较隐蔽、不易察觉。出现问题无法实时监控和告警,只能通过客户投诉后才发现。由于延迟性高,待相关人员介入处理时,问题经常已经呈现蔓延的趋势,处置成本极高。

2.问题分析、定位慢。移动端应用同一时间在运行的前端版本众多,运行平台的操作系统版本不同,硬件机型繁多。使得相关人员在评估影响范围时,周期较长。且移动端应用一般对接的后台系统较多,多系统协同排查困难,问题分析定位费时、费力。

3.问题应对、处置慢。移动端应用发生异常后,处置人员由于个人情感、技术能力、外界压力等因素,有时候不能果断、快速处置问题,无法做到快速阻断问题,恢复生产。

移动端运维标准建设

根据移动端运维工作独有的特征,我们可以明确,移动端应用的运维工作首先要满足“快速响应”的诉求。只有做到快速响应,才能最大程度的减少对客影响。对此,我们结合移动端应用生产问题的历史处置经验,总结提炼了移动端应用运维快速响应能力模型,作为移动端应用运维领域的评估依据和实施标准。

1.什么是快速响应能力。一个产品对生产问题的快速响应能力,可以细分为感知、定位、分析、应急四个阶段。

感知:将问题信息、影响范围通知到相关人员。

定位:定位到出现问题的产品、功能、接口、模块、服务器节点等,明确该问题的边界。为后续聚焦资源、启动应急预案做好准备。

分析:对于复杂生产问题,当已有信息不足以支撑应急决策,需具备快速收集和整合信息的能力,缩短分析人员的信息获取时间。

应急:优先采用不更新应用版本的方式,第一时间阻断影响、恢复生产。

2.移动端应用运维快速响应能力模型。为了建立一套行之有效的机制及实践,达到移动端应用运维快速响应的目标。我们以各阶段工作目标为维度,针对感知、定位、分析、应急归纳了D1至D4四大类共计14项指标,组成移动类应用生产故障快速响应能力模型。该模型详细描述了每类目标的细化要求,明确了一个移动端应用产品需要建设哪些能力,才能在生产故障时,具备快速响应的能力(见表1)。各能力模型详细描述如下。

表 1 移动端应用生产故障快速响应能力模型

D1-F1(客户使用情况感知):对接口请求报错情况、响应耗时、对应的功能及后线系统、闪退信息等进行收集汇总并分析。D1-F2(实时信息触达):对分析完成的监控数据以短信、微信、邮件等形式实时推送到相关干系人。D2-F1(终端信息实时展示):对问题涉及的终端信息实时展示,包括但不限于APP版本范围、机型、操作系统等,快速明确影响范围。D2-F2(问题交易链路):明确功能涉及的全交易链路,方便组织交易链路上的产品共同排查。D2-F3(报文抓取):针对不同终端,如原生、H5、小程序等,能够快速获得请求的上下文。D2-F4(问题复现):具备与生产环境相同的镜像环境及终端,能够为模拟复现提供支持。D3-F1(代码分析):具备代码分析工具,能够对各批次的源码和执行码进行比对,快速定位出最近变更的内容。D3-F2(模拟复现):根据收集的报文、终端等信息,能够在镜像环境复现生产问题。D3-F3(交易唯一流水号):具备全局交易流水号生成能力,能够根据交易流水号串联各系统的调用栈。D4-F1(可配置更新提示):具备各终端各功能的提示信息实时配置能力,减少问题后续影响。D4-F2(H5离线缓存):具备H5离线缓存能力,各终端能够根据配置信息下载H5修复包,快速恢复生产。D4-F3(控制功能范围):具备各终端各功能的展示页面配置能力,针对异常功能可以及时屏蔽处理。D4-F4(接口修复补丁):具备接口热修复能力,能够针对异常功能接口下发修复补丁。D4-F5(定向清除缓存):具备缓存清除能力,能够从终端、客户等维度清除缓存信息。

能力建设,标准先行。移动端运维能力的建设,首先应是移动端运维标准的建设。运维标准化,可以为类似的产品指明方向,在产品建设初期就可以投入资源积累自身快速响应能力。对于一个企业来讲,参考标准去规划和实施,能够大大降低整体运维工作的成本,提高运维效率,将用户的影响降低到最小,提升客户整体使用体验。

结        语

随着移动互联网的飞速发展与质量提升,移动端应用运维能力建设的重要性愈发凸显,提升移动端应用运行维护的效率和质量是一个必然趋势,也是发展的必然结果。如何提高移动端应用的快速响应能力,是每个移动端运维工程师要考虑的问题。参考移动端应用快速响应能力模型,可以帮助移动端产品明确其非功能建设目标。基于该模型,评估相关产品在该领域的成熟度,建立产品能力建设成熟度台账,也可以使相关产品的运行维护能力提升目标更加清晰可见,帮助企业信息化运维工作顺利开展。

(栏目编辑:张丽霞)