运营商数字化转型研发运营一体化机制探索
2022-04-25张国新
[张国新]
1 引言
数字经济正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。中国高度重视发展数字经济,将其上升为国家战略,提出加强关键核心技术攻关,提高数字技术基础研发能力,打好关键核心技术攻坚战,尽快实现高水平自立自强,把发展数字经济自主权牢牢掌握在自己手中。2016 年,中国电信就已经发布《中国电信CTnet2025 白皮书》,提出网络重构,研发关键核心技术和相关系统,建设一体化运营机制。2020 年,中国电信又率先发布《云网融合2030 技术白皮书》,提出云网融合是通信技术和信息技术深度融合所带来的信息基础设施的深刻变革,为数字经济发展提供坚实底座。其内涵在于通过云网技术和生产组织方式的全面深入的融合与创新,运营商在业务形态、商业模式、运维体系、服务模式、人员队伍等多方面进行调整,从传统的通信服务提供商转型为智能化数字服务提供商,为社会数字化转型奠定坚实、安全的基石。
结合网络演进,电信网络逐步实现从“硬”变“软”,网络能力向云化和平台化转型,灵活的网调云、云调网等云网融合能力正在不断部署,网络运营的生产组织模式同步做出演进,引入研发运营一体化模式,建立适应新型网络的研发运营机制,特别是在IT 软件项目领域的研发运营一体化有力推进公司数字化转型,提高核心技术自主掌控能力,实现对业务和用户的快速响应。
2 传统软件工程管理
由于行业特性,通信运营商内部组织架构、业务流程、服务模式基本围绕通信网络能力和电信业务进行适配和演进,相对成熟稳定。支撑公司运营的MBO 软件工程大部分还是基于传统的瀑布模型进行开发管理,具体步骤如图1 所示。
图1 运营商软件开发模型
这种模型下的软件开发,主要特点:
(1)开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。
(2)采用交钥匙方式,用户在交钥匙前主动参与度不够,需求未完全澄清或反复变更,经常出现上线功能与真实需求不匹配。
(3)早期的错误无法及时暴露,要等到开发后期的测试阶段才能发现。
(4)开发、测试、部署、运维自动化能力低,后期运行难度大。
软件开发的各项活动按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
3 价值驱动的研发运营
3.1 双环研发运营模型
在互联网时代,“瀑布模型”已经不能满足需求快速变化的软件项目。2009 年比利时Patrick Debois 组织了一个“DevOpsDays”社区会议,启用了“DevOps”术语,提出研发运营一体化概念。Flickr 公司在2009 年探索并成功运用“主干开发+持续集成+持续发布”软件研发模式,通过研发模式创新,更快地了解海量用户需求,快速验证业务假设和解决方案。通过不断摸索创新,业界提出了价值驱动的模型,如乔梁专家将精益创业和持续交付1.0 相结合,提出双环模型,实践不同,但思想都是围绕客户价值。
2016 年随着CTNet2025 的发布,中国电信开始积极探索研发运营一体化机制,其中,广东电信在企业网络运营研发实践中,基于“DevOps”架构,提出一种适用于运营商的“V+S 双环研发运营模型”(如图2),实现产品研发以价值为驱动、以效益为尺度,有效避免原有瀑布式研发带来的发布周期长、失败率高的短板,提升产品研发效率何效益。
图2 V+S 双环研发运营模型
为了兼顾企业现有组织流程,V+S 双环研发运营模型将互联网软件研发的敏捷开发、持续交付和通信运营商成熟的运营流程相结合,在传统通信运营商的IT 项目引入互联网的DevOps 理念。在V+S 双环研发运营模型下,用户不仅是软件产品的需求提出者和使用者,同时也是软件产品开发的参与者和体验者,代表业务走向IT。研发团队不仅是软件产品的开发者,同时也是软件产品的产品经理和运营者,代表IT 走向业务。业务和IT 紧密衔接,互相嵌入,使得开发成本最小化,快速创造业务价值。V+S 双环研发运营模型包含两个环,价值挖掘和业务验证。价值挖掘环的目的是根据需求和问题发现价值,利用互联网敏捷开发理念快速实现产品功能。业务验证环的目的是将价值挖掘环实现的产品功能快速迭代发布上线,通过在线收集业务的真实运营和使用情况,及时反馈给价值挖掘环,进行评估决策。业务验证环利用持续发布流程,实现快速发布上线。
3.2 价值挖掘环由提出需求、评估价值、需求实现和评估反馈四个环节循环
(1)提出需求。在这个环节,研发团队的业务人员收集内、外部客户新的业务需求,或者已有产品(系统)存在的不足,并通过业务人员按统一标准进行澄清和定义,形成需求列表。在一些项目里,例如中小型的创新项目,用户参与到研发团队,作为研发团队的业务人员。
(2)评估价值。研发团队结合公司发展战略和重点工作,对需求内容和效益进行评估。在这个环节,对于定位清晰的需求,按照价值大小排序纳入开发;对于重大创新性需求,组织公司内业务部门专家评审。
(3)需求实现。需求实现是一个迭代的过程,在此过程中强调敏捷实现,以及用户的参与和互动。研发团队根据功能需求的复杂程度,在开发过程中提供演示环节,让用户及时看到Demo 和原子级功能的演示,并反馈意见。用户的参与和互动,有助于研发团队更好地实现核心能力,并及时发布交付。
(4)评估反馈。在这环节,研发团队根据业务验证环收集的用户真实反馈,对需求的价值进行再评估,对实现的功能进行评价,作为下一迭代的重要依据。研发团队通过评估用户使用量、调用次数以及在线反馈,与需求环节的预估效益进行检验,评估功能的真实价值,决定功能继续迭代升级还是下线。
3.3 业务验证环由发布、部署、运行维护和服务监测四个环节循环。
(1)发布。该环节作为由开发阶段进入运行阶段的标志。研发团队利用持续发布流程和自动化发布平台能力,对代码进行集成和安全检测,并将合格的软件交付运行。
(2)部署。在该环节,研发团队利用电信云平台、PaaS 平台和相关组件工具进行自动化部署上线。内部软件产品主要部署在中国电信天翼云上。
(3)运行维护。运维团队利用自动化运维工具开展运维保障。运维工具与内部故障管理流程打通,对于无法自动修复的故障,自动派发告警工单,通过故障管理流程进行闭环管理。小型软件产品,研发团队兼做运维团队工作。大中型软件产品,由专业的运维团队负责运营,研发团队作为二线提供运营支撑。
(4)服务监测。在本环节,运维团队负责监测系统运行情况,服务响应效率等。研发团队监测客户对产品和服务的使用情况、使用反馈、评价等。相关数据和信息作为第一环节评估依据。
4 研发运营一体化实践
2017 年广东电信通过多专业协同工作站等方式,推进自主研发团队的建立及实践,组织培训,搭建自动化流水线集成发布平台。在V+S 双环研发运营模型指导下,运营支撑系统领域的工作站团队自主研发了多个系统,特别在大数据和AI 自主开发方面取得一些突破,下面介绍翼知网络自动驾驶自主研发实践情况。翼知网络自动驾驶是用人工智能和客户感知大数据预警设备隐患和客户抱怨,可以高效、精准预警宽带设备隐患。翼知网络自动驾驶经过迭代升级,预测质差设备准确率超过80%。
4.1 敏捷开发管理
我们在V+S 双环研发运营模型的价值挖掘环引入敏捷开发管理方法,利用互联网软件开发管理方法提升软件产品开发效率,压缩交付周期。业界有很多方法论开展敏捷管理,应用比较广泛的方法论是Scrum 框架。Scrum 框架由Scrum 团队以及与之相关的角色、事件、工件和规则组成。在Scrum 团队里,成员不是各管一摊,而是围绕共同目标,互相帮助实现共同目标。通过专家培训,让团队成员理解敏捷原则,主动融入开发运营一体化模式。
翼知网络自动驾驶研发团队由一名产品负责人、一名Scrum Master 组成和六名研发人员。产品负责人兼职产品经理和业务人员,负责收集整理翼知项目的需求,管理需求待办列表项,评估价值,进行排序,保证团队按照价值最大化开展工作。产品负责人还负责收集上线模块的用户反馈,组织评估。Scrum Master 服务于整个团队,属于教练性角色,尽可能确保Scrum 团队中的每个人都能理解目标、范围和产品域,指导和协助处理Scrum 异常事件。研发人员参与需求讨论和反馈评估,负责软件的开发实现。项目团队通过每天站会、两周的展示和需求评审会推进产品开发。
4.2 持续交付
我们在V+S 双环研发运营模型的业务验证环引入持续交付方法和自动化运维。为了支撑研发可持续交付的软件,利用开源软件搭建了持续集成持续交付的自动化发布平台,提供配置管理、构建和持续集成、基础设施和环境管理、数据管理、组件和依赖管理、版本控制管理、测试、部署等功能,可自动实现研发运营一体化软件的可持续交付。
在发布和部署环节主要应用持续交付过程,借鉴业界主流的可持续交付软件方法和持续交付流程(如图3),创建一个可重复且可靠的软件发布过程,可以自动集成、测试、版本管理、部署服务,自动管理各种脚本、工件,一键发布软件,使软件发布成为一件非常容易的事情。在团队内建立质量意识,所有环节关注质量。测试是团队全体的质量责任,不纯粹是测试人员的工作,开发人员利用自动化平台能力,每天提交代码,及早进行测试,及早发现问题进行整改。工作中,鼓励团队成员找出痛点并优先解决,例如写测试用例是项目的痛点,如果没有完整的测试用例会导致测试不完备,质量不过关,这时就应该提前准备测试案例,养成习惯。项目所有的工作交付件都会纳入版本控制,包括代码、测试用例、部署脚本、数据库脚本、文档等。我们尽量实现工作自动化,除了个性探索类功能测试、功能演示、割接流程审批外,利用开源工具实现大部分工作的自动化。
图3 持续交付流程
在运行维护和服务监测环节,引入自动化运维,充分发挥自动化工具和大数据、AI 能力,保障系统稳定、安全、高效运行。我们推进软件产品运行环境标准化,保持操作系统、数据库、中间件等环境尽量统一,然后开展自动化配置,尽量通过自动化工具进行变更维护,减少人为因素导致的差异化,引入不必要的漏洞和风险。在运维中综合利用AI、大数据和分析工具等手段开展主动性智能维护作业,主动优化扩容,保持系统高效运行,通过监测服务响应时间、用户使用行为、用户意见和反馈,以便评估产品和系统的价值,推动产品迭代开发。
4.3 成效
通过项目实践,推进互联网DevOps 研发思维落地。首先,研发团队转变了思想观念,引入敏捷开发管理的方法论,更加关注交付可运行的软件,需求一周内提供Demo 进行确认,用户高度参与和互动,降低软件项目失败风险,提高交付效率。第二,研发团队建设可持续交付平台,具备持续交付能力,改变了原来模块开发完成后再上传代码测试模式,每天上传代码进行自动化集成、测试,流水线式,安全快速地上线用户可用的软件。软件从一个月割接升级一次,缩短到每周一次较大版本升级,可以根据需要每天若干小功能升级,交付速度大幅提升。第三,研发团队利用开源工具开展自动化监控和AI 预警驱动的主动作业,推动IT 能力和成熟的CT 故障流程相结合,保障系统安全可靠。
5 结束语
研发运营一体化发源于IT 行业,2009 年提出,因为可以高效响应商业和业务快速变化需求,可持续交付满足客户需求的软件,从而得到大力推广应用,催生并支持了互联网行业的蓬勃发展。在中国电信集团公司战略规划指导下,广东电信主动推进网络演变,积极践行、探索研发运营一体化机制,在产品研发管理过程中,总结出符合通信运营实际的价值驱动V+S 双环研发运营模型。在该模型下,业务和IT 研发之间紧密协作,成立产品研发团队,通过研发运营一体化机制,有效提升产品项目管理水平,实现对业务和用户的快速响应。