深圳防灾减灾技术研究院开启鲲鹏原生开发之路
地震监测预警事业与国家经济发展、社会稳定和国民的生命财产安全息息相关,自国家地震烈度速报与预警工程建设项目开展以来,已建设一万五千多个地震监测台站,可在震后5-10秒产出地震预警信息,而实时汇集传输和存储管理这些台站全天候产出的海量监测数据成为地震台网的一项重要工作。
深圳防灾减灾技术研究院聚焦预警工程定制软件研发,致力于达到实时传输汇集、存储处理近两万个地震台站的海量实时数据,以及在震后几秒内测定地震参数并向社会发布地震预警信息的目标。目前,深圳防灾减灾技术研究院已成功研制出两款核心软件——SeisWave-SSS与SeisWave-AWS,这两款软件均在我国地震数据的高效传输与共享,以及地震波形数据的系统化存储与归档管理中发挥着重要作用。地震观测数据,涵盖了GNSS位移等多种传感器采集的信息,对于我国地震预警机制的完善、工程抗震设计的优化以及国防安全的强化,均具有深远的意义和重大的价值。
【鲲鹏原生架构图】
鲲鹏平台具备高吞吐、低时延、低能耗、高安全等优势,还提供完善的原生开发工具链生态,可更好的支撑地震传输流服务和地震波形数据管理业务的要求。基于此,深圳防灾减灾技术研究院携手鲲鹏原生开发地震数据传输流服务软件SeisWave-SSS和地震波形数据存储归档管理软件SeisWave-AWS:基于鲲鹏硬件+openEuler OS+鲲鹏DevKit+鲲鹏BoostKit,实现一套代码构建多平台版本、且鲲鹏版本性能更优。目前上述两款软件已经完成鲲鹏原生开发,并顺利获得Kunpeng NATIVE认证。
流水线改造 实现多平台版本一码构建与高效适配
今年1月,深圳防灾减灾技术研究院的架构研发团队联合鲲鹏技术专家组成联合架构团队,在现有CICD流程中增加本次地震业务软件的鲲鹏构建流程,实现从开发-构建-测试-发布-运行的全流程优化。
开发人员基于鲲鹏服务器以及麒麟操作系统(openEuler系),搭建了持续集成节点;在构建流程中融入了鲲鹏DevKit流水线技术栈,包括流水线门禁、毕昇编译器、鲲鹏测试框架、性能分析插件、版本漏洞扫描插件等能力,这不仅能够确保构建产物与鲲鹏架构的适配性,全面优化在鲲鹏架构上的开发及运行效率,还能进一步提升版本的性能、测试效率和质量。
流水线优化改造后,开发人员只需开发一套代码,有建构差异的代码会使用宏进行定义隔离,在门禁阶段可快速检查代码的兼容性和亲和性,并构建不同平台版本,提升开发质量的同时保证代码质量。
【改造后的流水线】
版本迭代开发 鲲鹏赋能原生应用自动化构建与性能优化
本次原生开发的两款业务应用主要开发语言为java,在代码开发阶段无需改动。另外,在原有开发流程中,从编译构建到应用部署测试都是开发人员手动进行,在搭建JenKins流水线后,只需提交开发好的代码,流水线会自动进行编译构建、部署测试等工作,无需人工干预,大大节省了人力成本,开发效率也得到了大幅度提升,经对比分析,开发效率提升了50%以上
代码开发完成后提交到流水线,在流水线中可直接调用鲲鹏DevKit门禁检查组件,对代码的鲲鹏兼容性和亲和性进行检查和优化。首先,针对规则项会拦截架构不兼容代码,并指导快速修改替换,确保鲲鹏架构兼容;此外,亲和分析检查会从运行模式、字节对齐检查、构建亲和检查等多维度扫描和优化代码,提升进一步提升代码质量。
通过鲲鹏流水线构建后,会生成对应产品的部署包,在编译构建阶段,流水线中会无感切换为毕昇JDK进行编译,该编译器针对鲲鹏架构进行了多维度优化提升,基于AppCDS特性、快速序列化、NUMA-Aware特性等特性,将进一步提升应用的运行效率。经测试,以传输时延持平为前提条件,鲲鹏服务器对比友商使用的CPU资源更少,理论上能够提升10%的吞吐率,更好的支撑大规模业务数据处理。
目前,SeisWave-SSS 和SeisWave-AWS已经在我国地震预警台网广泛应用,支撑我国地震预警网海量实时观测数据的汇集传输和存储管理。基于鲲鹏+openEuler系操作系统运行,这两款软件实现了基于国产平台的商业部署和长期稳定运行,保障了我国地震观测数据的安全。除了应用于地震预警监测之外,软件还可以用于流动地震科学观测、水库地震安全监测、地震应急监测、石油勘探地球物理监测、建筑物振动监测、铁路振动监测、桥梁振动监测、核爆及爆破监测等领域,有着广泛的商业应用价值。
未来,深圳防灾减灾技术研究院将持续加强与鲲鹏开展战略合作,深化地震预警定制软件研发业务原生应用,包括推进地震预警、自动速报、烈度速报、综合分析、地震紧急信息发布等软件模块的鲲鹏原生开发,实现地震监测预警全流程数据处理软件的自主创新,保障我国的地震动观测数据安全和国家与民生的安全。