文 / 中国光大银行金融科技部 曲文博 宋向京
为应对技术更新带来的变化,光大银行在测试环境自动化搭建成熟度方面持续发力,探索提升云上全部过程自动化能力,以助力银行数字化转型,提升金融科技水平。本文将从测试环境自动化搭建的问题剖析入手,介绍测试环境自动化搭建的探索与实践、效果与未来展望。
壁垒之困:自动化面临的难点与挑战
随着云原生和分布式技术的广泛应用,银行正逐步迈向更灵活高效的软件开发和运营模式。然而,传统的测试环境主要依赖人工搭建的方式,面临着操作重复、知识难以积累、耗时耗力、容易出错等问题,已经难以适应快速变化的业务需求和复杂的技术架构。这些问题凸显了自动化搭建的必要性和重要性,然而实现测试环境的快速搭建和高效管理,也面临着一系列待解决的挑战和难题。
1.环境的多样性。银行业务系统复杂多样,不同系统的测试环境配置、环境依赖的技术栈不同,对环境的要求也千差万别,每次测试环境搭建都需要根据特定系统的要求进行定制化的配置和安装。
2.技术的复杂性。测试环境搭建属于技术密集型的任务,需深入理解并熟练运用多种技术组件,涉及云资源管理、容器技术、数据库配置、中间件和应用部署等多个复杂的技术领域。
3.实施的安全性。测试环境自动化搭建的实施过程中可能涉及密码等敏感信息,需确保敏感信息安全合规的使用;同时自动化脚本也可能成为潜在的攻击目标,在自动化实现过程中需加强安全防护。
4.流程的标准性。环境多样、技术复杂、实施安全等因素为环境搭建流程的标准化带来了难度,制定一个既全面又灵活,既稳定又安全的标准化实施流程,是一项复杂而艰巨的任务。
从上述问题中我们可以清晰地看到,尽管自动化技术已为各行各业带来了前所未有的便利和效率提升,但其实现之路充满了挑战,这些挑战不仅考验着我们的技术能力,也考验着我们的创新思维和解决问题的能力。
智慧破局:自动化实现的探索与实践
为了攻克测试环境自动化搭建遇到的种种难题,我们重新审视测试环境搭建的策略方法,结合云原生和分布式技术的特点,不断探索与实践自动化的可能性,从制定全面细致的标准实施流程规范,到设计测试环境自动化实施关键要素的拆解策略,再到具体案例的实施落地,推动自动化一步步发展,保障测试环境搭建的稳定可靠。
1.规范引航,奠定自动化搭建的稳固基石。标准的规范流程(见图)可以尽可能屏蔽环境的差异性、简化技术的复杂性、提升实施的安全性。
图 测试环境搭建的标准实施流程
在实施过程中:一方面,我们关注测试环境实施流程的标准化,通过明确各环节的职责、要求、输出结果等内容,为环境搭建维护提供一个清晰、明确的实施指南,便于实施过程的管理和监控,确保整个过程的顺利进行实施;另一方面,探索实现环境实施输入信息的标准化,定义整个测试环境实施过程所需要的资源信息、软件信息、依赖信息、测试数据信息等内容,利于与自动化脚本工具集成,为测试实施的自动化奠定基础。
2.方法解构,剖析自动化实现的内在逻辑。业务系统测试环境中有资源类型的差异、有技术栈的区别、有服务依赖的不同等,组成了异常复杂和多变的测试环境搭建场景。为了实现不同场景的自动化,我们采用了分层拆解细化的处理策略,保障自动化实施的系统性和可操作性。
首先,自动化实现处理策略的核心在于对场景的巧妙拆解,将复杂场景划分为若干个相对独立、更小、更易于管理的子场景,每个子场景单独处理,降低测试环境自动化实施实现的难度。其次,对于每个子场景,采用先自主操作再总结实施知识库的方式提炼经验,以自主操作来深入理解环境实施的业务逻辑和操作细节,以知识总结来归纳形成该子场景的标准化操作流程,为自动化实施提供可靠的参考依据。最后,将知识库中的实施步骤进一步分解为配置参数和执行脚本,通过参数化,将环境实施场景中的可变因素抽象出来,使得自动化实施更具有灵活性和可配置性;通过脚本化,将参数和操作流程结合起来,形成可执行的自动化指令。
通过场景拆解、经验提炼到自动实施过程的层层递进,辅助环境实施人员能够连贯、有序地推进自动化实施的各个步骤,确保每一步都扎实可靠,为测试环境搭建等复杂场景的自动化实现提供一种有效的途径。
3.案例启示,阐明自动化实施的成功之路。在众多测试环境搭建场景中,鉴于容器已成为业务系统上云后使用的关键计算资源,其重要性和普及程度不言而喻,因此,我们选择“容器环境搭建”场景作为典型代表案例进行深入阐述。
在容器环境人工搭建过程中,往往是明确一个基准环境,参考基准环境逐步完成需求评估、资源申请、软件安装和应用安装,并最终交付给用户使用。这个过程中实施要点是软件和应用的安装,而安装实现自动化的关键在于配置参数和执行脚本的有效结合。
关于配置参数,主要挑战是设计灵活的标准化输入信息模板,确保环境搭建的一致性和可重复性,并且能适用于所有业务系统测试环境的搭建。通过综合分析多个业务系统容器环境YAML文件配置参数修改的特点发现,每个系统测试环境配置参数的共性在于项目标识、访问地址等资源信息,以及YAML文件的存放信息,这些共性支持不同业务系统使用计算资源、管理YAML文件版本;而特性在于修改YAML文件的参数位置、参数替换方式(新增/修改/删除)、修改后的目标值等存在差异,这些特性支持不同系统使用不同的依赖和技术栈。基于参数修改的共性和特性,我们总结形成一套统一的容器环境搭建输入信息模板,为自动化实施提供保障。
关于执行脚本,重点是实现参数的自动修改和服务的自动启动,主要挑战是支持YAML文件及文件中内嵌的yml、xml、conf、properties、sh等不同类型、不同格式的参数自动修改。根据YAML文件特点,综合分析考虑YAML文件的层次结构、数据类型、标准化参数修改方式、业务系统使用技术栈差异等,我们设计并实现了一套YAML文件解析、遍历和修改参数、保留原始格式和注释、生成新的YAML文件的通用性脚本,实现对原生应用、配置字典、保密字典、网络、存储等操作对象YAML文件的自动化修改。
按此方法,各业务系统虽然使用的技术栈各异,但其容器环境只需根据标准化的输入模板持续维护搭建信息,即可实现随时随地快速自动化搭建,不只有利于实施的提质增效,还有助于容器应用在集群之间快速迁移以更充分利用资源。
效显未来:自动化实施的成效与展望
测试环境搭建是一项复杂又重要的工作,需要多方协同配合,全面考虑各项因素,持续优化改进实施过程。目前测试环境搭建过程中的软件安装、应用安装等关键步骤的多个场景已探索实现自动化,预期随着银行技术架构更新和测试环境全流程自动化实施的深化,将取得如下应用效果。
1.积累最佳实践。自动化可以更好地积累操作过程的知识,将人工操作的经验和最佳实践固化在自动化流程中,共享给大家随时查阅和复用。
2.增强环境的可重复性。自动化搭建基于预设的规则和流程,每次搭建环境是一致的,或者差异是可知的,有助于分析环境差异对测试结果的影响,提高测试的准确性和可靠性。
3.降本提质增效。自动化实施可减少人工操作的错误率,提高环境的质量,降低环境实施成本,显著提高环境实施效率;同时环境的快速搭建为单元测试小环境多路复用和资源的腾挪利用奠定了基础,对降低环境使用成本有重要意义。
尽管我们在测试环境自动化搭建的探索上已经取得了一些成果,但未来的道路仍然充满挑战和机遇。随着大模型、人工智能等技术的不断发展,未来测试环境自动化搭建将呈现出更加智能化的趋势;通过分析历史搭建任务的执行日志,学习并识别出常见问题和异常场景,实现提前预警并自动修复,进而减少测试环境自动化搭建过程中的故障数和人工干预率。后续我行将持续关注新技术和新趋势的发展,积极探索更先进的自动化搭建方案,构建一个更加高效、稳定、智能的测试环境,为银行的数字化转型提供坚实的基础。
(此文刊发于《金融电子化》2024年8月上半月刊)
新媒体中心
主任 / 邝源
编辑 / 姚亮宇 傅甜甜 张珺 邰思琪