设为首页 | 收藏本站 | 关于我们 | 广告服务
 
 
当前位置:首页 > 中国金融电脑 > 2022年11月
中国工商银行软件开发中心专家林燕:工商银行应用研发测试环境单元小环境探索与实践

中国工商银行软件开发中心专家 林燕

  在软件研发的全生命周期中,研发测试环境作为将应用代码转化为业务产品价值交付的过程要素,是完成软件产品部署及测试验证的重要前提和必备条件。同时,该阶段的软件产品通常具有不成熟的特性,而稳定和易用的研发测试环境(如支持自由连接、随时可用、互访可控等)能够极大地提高开发者的工作效率和幸福感。面向上述诉求,工商银行软件开发中心(以下简称“开发中心”)围绕“研发测试环境运维新体系”建设,聚焦测试环境的稳定性和可用性需求,依托交付流水线设计实现了测试环境持续构建,为研发测试工作的顺利开展提供了基础保障。

  一、研发测试环境现状及挑战

  当前,开发中心应用版本研发总体上是按照月度版本节奏进行规划,在坚持多版本并行的同时,持续加强敏捷迭代、快速交付、灵活投产等能力建设;在此基础上,为满足版本全流程测试需要,针对不同测试阶段规划了与之相适配的应用开发自测环境、功能测试环境、回装验证和投产演练环境,并面向不同测试场景或重点项目按需提供了性能测试、账务验证、混沌测试、下主机仿真等专项测试环境,且各个环境间相互独立隔离。但在实际工作中,开发中心研发测试环境建设仍面临三大挑战:一是应用系统架构复杂、测试场景多样化、环境规模庞大,任意测试环境均需配备相关的依赖服务,基础设施资源消耗较大,运维成本较高;二是版本部署频繁,版本质量参差不齐,环境稳定性较差;三是应用间服务调用链路较长,上下游应用联测相互干扰。

  二、单元小环境建设实践

  针对上述难点,开发中心选择进一步深化分层建设思路,探索构建更小单元、更低成本、更加灵活的测试环境:一是将整体环境划分为敏态环境和稳态环境,敏态环境支持在应用或项目间相互隔离,开发人员可以自由更新版本和调试服务;稳态环境则严格控制版本部署节奏和版本质量准入,负责为敏态环境提供稳定的下游依赖服务,并兼顾灵活性与稳定性要求。二是以测试需求为最小单元接入敏态环境,单元小环境内只部署涉及改造或测试的服务节点,且不同单元环境间相互隔离、互不干扰,而一旦不同开发人员、应用或项目需要联调时,即可将其快速组合形成更大的单元环境,进而实现多人协作;此外,对于单元小环境依赖的下游应用服务,主要由稳态环境负责供给并保证其随时在线可用,而涉及的基础技术平台如集群资源、注册中心、网关等则是作为可选部件,支持以最小需求实现线上快速供应。研发测试单元小环境设计思路如图1所示。

图1 研发测试单元小环境设计思路

  1.单元小环境技术特点

  一是实现了单元小环境独立隔离,包括应用服务暴露隔离和运行节点隔离。其中,应用服务暴露隔离主要是基于注册中心实现,由于现阶段应用尚未全面具备全链路流量染色能力,故通过在每个单元小环境中使用不同的注册中心,即可实现不同应用服务或者相同服务不同版本间的相互隔离;在运行节点隔离方面,云上运行节点可通过使用不同的命名空间实现不同应用节点或相同应用节点多个版本的相互隔离,云下运行节点则可使用不同的虚拟机关联不同的域名实现隔离。

  二是实现了多个单元小环境快速合并,即通过将多个单元小环境的注册中心合并成更大的集群,可进一步扩大服务发现范围,并快速实现服务的互联互通。多单元环境合并作业模式如图2所示。

图2 多单元环境合并作业模式

  三是实现公共环境服务调用,包括跨注册中心环境服务调用和本环境服务优先调用。其中,跨注册中心环境服务调用可基于目前分布式服务框架已有的多注册中心订阅等功能,实现对公共环境的只调用不注册,同时确保不对公共环境暴露服务,以避免干扰公共环境;本环境服务优先调用主要基于分布式服务框架已有的同城同园区优先、按注册中心声明顺序优先等功能,可将公共环境注册中心订阅为异地园区,进而实现本环境优先消费。公共环境服务调用模式如图3所示。

图3 公共环境服务调用模式

  2.单元小环境适用场景

  一是开发自测场景。目前,开发自测主要面临着三大难题,即自测服务版本不稳定、缺少下游依赖服务以及直连联测环境干扰正常测试开展,而通过接入单元小环境,将可使每个开发者均成为一个独立隔离的单元,自由更新代码、设置断点、重启应用,且丝毫不影响其他人,即便需要多人协作时,也可通过线上快速组合单元实现互访,并由稳定的公共环境负责提供下游依赖服务,从而大幅提高开发自测的灵活性和连通性。

  二是单应用测试场景。功能测试环境通常具备较为完整的上下游应用服务,主要用于业务功能、业务流程的验证,同时接口测试、自动化测试、回归测试也大多在该环境开展,彼此间相互影响,隔离效果较差,但如果为每个测试场景搭建独立的测试环境,将耗费大量资源。对此,单元小环境可针对不同测试场景,以最小资源成本实现快速供应,使测试人员可根据测试需要在mock测试和真实服务间灵活切换,不仅可显著提升内部验证效率,还可降低对联测环境的干扰。

  三是多发布分支并行测试场景。除上述场景外,单元小环境同样适用于解决多发布分支并行测试等场景,并能够实现多版本并行隔离、快速迭代、互不干扰,同时所需下游依赖服务也可由公共环境供给。单元小环境适用场景如图4所示。

图4 单元小环境适用场景

  三、实践成效总结

  截至目前,单元小环境建设已在开发中心开发自测、单应用测试、多发布分支并行测试等多个场景中投入使用,并取得了良好的应用成效。

  一是实现本地服务加入联测,极大提升了自测效率。单元小环境支持开发人员在本地独占环境,不仅无需等待漫长的流水线部署,而且所需的下游依赖服务也保持随时在线、稳定可用,从而使开发人员可更为便捷地验证软件功能。

  二是深化质量内建,推进测试前移。基于单元小环境,开发人员可自行调整测试节奏,并在独立的小环境内完成应用内部功能验证,从而大幅降低应用间测试耦合,有效提升问题发现效率及版本质量。

  三是以更小的资源成本支撑全流程测试开展,解决了资源效能问题。针对不同的测试场景和应用,单元小环境中只需部署本测试场景或者本应用涉及的服务即可,而下游依赖服务则可最大限度地复用公共基础环境,从而支持以有限的研发资源来满足多样化的测试需要,加快研发资源向绿色低碳转型。

  作者:中国工商银行软件开发中心专家 林燕

            中国工商银行软件开发中心 孙雨辰


 
过刊查询
2022年03月 2022年02月 2022年01月
2021年12月 2021年11月 2021年10月
2021年09月 2021年08月 2021年07月
2021年06月 2021年06月 2021年05月
查看所有过刊
本期精选
《中国金融电脑》2022年第11期目录
中国工商银行首席技术官吕仲涛:夯实数字..
中国银行信息科技部总经理兼场景生态与创..
中国民生银行信息科技部总经理毛斌:踔厉..
清华大学五道口金融学院教授张健华:完善..
中国信息通信研究院云计算与大数据研究所..
北京银行首席信息官龚伟华:打造多云生态..
珠海华润银行首席信息官张昕:构建金融基..
 
企业简介 | 版权声明 | 免责声明 | 频道介绍 | 安全提示 | 法律顾问 | 网上投稿 | 客服电话 | RSS订阅
Copyright © 2005 Fcc.Com.Cn, All Rights Reserved. ,《中国金融电脑》杂志社版权所有
电话:010-51915111-805 传真:010-51915236,网络出版服务许可证(署)网出证(京)字第337号
京ICP备14024077号-1 京公安网备:11010802025321 技术支持:站多多