嵌入式软件开发新趋势:DevOps
一些巧合促成了此次革新:同时期内云原生计算正在兴起,物联网设备和边缘技术正爆炸式发展,每时每刻都有数以亿计的嵌入式设备在全球各地不断地接入互联网,用一个新的方法去设计、测试、部署和维护这些设备的需求迫在眉睫。在此基础上,云原生计算引入了持续集成(Continuous integration,CI)和持续交付(Continuous delivery,CD)等方法来实现软件自动化的构建。
上述一系列的巧合在嵌入式软件领域引起了DevOps革命,不仅改变了嵌入式设备以往功能单一且孤立的属性,也改变了嵌入式软件修改性差、复用性低的现状。
发展是条漫漫长路:新思想的实践需要建立在安全的基础上
嵌入式软件开发者在项目构建的最初阶段,往往面临着巨大的困难:他们将不得不从头构建一套包含内核、分发版等软件的平台来开发新程序。不仅如此,后续的开发过程中,软件的每次改动都需要进行重新构建、测试和发布。为应对上述问题,传统的解决方式为:使用一个特定的版本控制基础架构团队、CI(Continuous Integration,持续集成)团队、QA(Quality Assurance,质量保证)团队——使三个团队同步工作,步调一致,以满足软件开发计划。
这种开发方式虽然能在一定程度上解决问题,但有着费时费力、成本昂贵等缺点,并不适用于当今的互联网、物联网和边缘设备。以消费品制造商(例如家用电器)为例,制造商并不具备频繁更新版本的充足资源,常规的消费品大类下,除了电脑和手机,消费者也不习惯频繁地更新设备。静态部署嵌入式软件的方式已不再适用于新型应用兴起与激增的当下。
除了开发方式外,安全问题也不容忽视。随着数以亿计的设备开始全时段接入互联网,对于在网络上有数百万个节点的公司来说,安全漏洞成为他们更大的关注点。公司需要持续监控所有的节点和设备,时刻维护并确保其24小时处于安全状态。
DevOps:嵌入式软件开发的革命
2008年多伦多敏捷会议,Patrick Debois初次介绍了“DevOps”一词,他被称为“DevOps教父”。DevOps的出现改变了云原生应用的部署方式,使软件可以被高效地频繁更新和部署,实现应用程序的不断升级。
▲Patrick Debois
当下的嵌入式设备已经开始应用DevOps完成嵌入式软件的自动化构建。对嵌入式软件生态而言,DevOps的引入为原先需要手动完成构建的公司提供了一个简化工作流的平台——可以使用一系列工具集或者平台来实现版本控制、持续交付和持续集成,既提升了工作效率,也方便对产品进行创新与拓展。
以航空业为例,60年前的飞机百分百都由航空公司自行制造,而其核心技术相差无几,低复用率带来了巨额损耗;技术不断革新的如今,仅波音公司和空客公司就几乎制造了全世界航空公司的所有飞机。当然,各家航空公司仍可基于独特的飞行体验、品牌化等需求定制自己的飞机,可核心技术的差异化设计依然难以实现。
引入DevOps的概念后,嵌入式软件开发者便可聚焦于定制产品,而不用在无差别无意义的基础构建上耗时耗力。这是嵌入式软件领域文化观念上的转变:直接在采购的、现成的机身基础上进行定制与创新。DevOps模型中还有分布式进行开发实践的观点,不同团队不同角色的成员可以在世界各地进行无缝协作。
2020年新型冠状病毒肆虐全球的背景下,DevOps的需求迅速增加。分布式开发的方式不仅没有消失,反而在技术开发中使用得更加普遍。尽管许多嵌入式软件开发人员仍在以上世纪的方式进行工作,但DevOps的普及只是时间问题,是不可阻挡的趋势。使用DevOps实践方法和平台,企业可以借助易用性强、复用性高的工具来实现云开发,减少软件构建的复杂流程,以便开发人员更聚焦于其应用程序的价值提升。
更多DevOps相关内容,欢迎点击查看详情或访问www.digiproto.com进行了解!
参考文献
参考链接:https://devops.com/how-devops-is-revolutionizing-embedded-development/