勇闯GNC软件DevOps转型之路

图片

作为从事安全关键软件研发15年的工程师,中航工业自控所的朱立平一直围绕飞行控制系统软件架构及体系研发做技术攻关。因此,他对传统飞行控制软件开发模式的待改进点有着深刻的洞察,例如研发效率不高、版本迭代困难、开发测试存在壁垒等,都束缚着GNC软件产品的高质量快速交付。他心中笃定,必须引入DevOps敏捷软件开发模式,为嵌入式飞行控制软件研发带来新的转型。

然而,这条转型之路,从一开始便布满了荆棘。

当朱立平在团队例会上首次抛出嵌入式DevOps转型的提议时,团队成员的脸上瞬间布满了疑虑与不安。一位经验丰富的工程师率先发声:“朱工,这新的模式风险太大了吧,我们一直以来都依靠传统方法,突然转变,软件集成上万一出了质量问题怎么办?”朱立平深知这位工程师的担忧并非毫无根据,但面对新的交付形势,他更明白不改变就没有出路。

他耐心地解释道:“我理解大家的顾虑,但我们不能一直停留在舒适区,嵌入式领域DevOps模式虽然充满挑战,但它能带来的高效开发与高质量是我们迫切所需的。想想看,我们可以更快地响应需求变化,减少错误,这对飞行安全至关重要。”

一位年轻认真的工程师也按捺不住心中的疑惑:“朱工,快速迭代会不会影响软件的稳定性呢?飞行控制软件可容不得一丝差错啊。”朱立平微笑着回应:“这确实是我们即将面临的巨大难题。但我们有办法,我们会引入先进的自动化流水线工具,确保每一次代码产品的提交都经过严格的工序验证。而且,持续集成方式也能让我们及时发现问题并迅速修复。”

可挑战远不止于此,嵌入式飞行控制软件对安全性和稳定性的要求近乎苛刻,而DevOps理念强调的快速迭代和持续集成似乎与之背道而驰。朱立平带领团队成员,成立了“软件部复杂GNC系统软件持续集成环境建设罗阳青年突击队”,深入钻研,苦苦寻觅既能保证软件质量又能实现快速交付的完美方案。他们不断优化敏捷流程,引入面向GNC领域、符合高安全实践、可靠部署的一系列自动化触发、检查、集成和测试工具链。

在一次技术研讨会上,工程师满脸无奈地说道:“朱工,发现兼容性问题简直像一座大山,我们尝试了好几种方法都无济于事。”朱立平却没有丝毫的气馁,他坚定地鼓舞大家:“别灰心,我们一定能找到方法。大家齐心协力,集思广益,必定能攻克这个难题。我们可以多参考华为等行业内头部企业的案例,从别人的经验中汲取智慧。”

与此同时,现有开发工具流程的调整、融合更是一项艰巨的挑战。朱立平需要协调各个部门单元,整合资源,对研发环境和体系进行全面升级。这个过程中,遭遇了数不清的技术改进问题和复杂的管理协调难题。每一个问题都像是一块巨石,挡住了前进的道路。但朱立平始终没有放弃,他凭借着顽强的毅力和坚定的信念,一步一步地向前迈进。

经过漫长而艰苦的努力,团队终于收获了创新的成果,整合设计出嵌入式软件DevOps 开发的整体架构,初步形成嵌入式软件开发的流水线,不断培育持续集成、持续部署的开发模式,为大规模GNC系统软件开发奠定基础。新的软件敏捷开发流程具备了前所未有的稳定性和可靠性,并且,通过持续集成流水线和自动化测试,软件能自动化编译构建并生成目标码,软件中的漏洞和错误能够被及时发现和修复,极大地提高了飞行安全性。

在实际工程研制中,实现在IDE编译环境下的5个软件配置项,涵盖200+个模型,80万+行软件代码的复杂依赖关系下,基于服务器端的自动化检查、编译、构建和虚拟仿真测试流水线,达到“人歇机不歇”,对比之前的人工执行,提效500%,同时实现100%自动化,消除人工偶发失误因素,保证了软件质量。

朱立平带领软件研发团队的成功转型,为大规模复杂飞行控制系统软件开发带来了全新的思路和方法,他就像一盏领航灯,照亮了嵌入式飞行控制软件领域的研发转型之路,激励着更多的工程师勇敢地去探索和创新。(冀丰偲)