DevOps在物联网解决方案中的应用

2022-07-28 11:09:09 digiproto
物联网(IoT,Internet of Things)这一概念在1999年由麻省理工学院的凯文·阿什顿教授提出,而其最早的模型则是来自1960年代的越南战争——美军通过在道路两侧投放大量传感器来监控越军的物资运送状态。时至今日,根据2021年最新发布的《“十四五”数字经济发展规划》,“物联网”一词被5次提及,并被划定为7大数字经济重点产业之一,毫无疑问是最具潜力的产业之一,也是趋势所在。根据世界级领先的麦肯锡咨询公司分析预测,2025年将有309亿个设备连接到物联网,其带来的总经济价值将在每年4万亿—11.1万亿美元之间。


物联网对生产生活的应用赋能体现在方方面面:通过传感器,即便远隔千里也能对设备进行运维监控;智能音箱普及之下,语音呼唤就能乐享智慧生活;覆盖道路的视频监控实时传输给行驶中的车辆,车路协同让无人驾驶成为可能……


互联网的崛起是国家政策的大力支持及技术逐渐成熟的结果,随着产业驱动力愈发强劲,发展势头也越来越好,遍布各个领域的企业都纷纷探索试验以抢占数字经济发展高地。


使产品上市时间加快再加快,无疑是取得市场成功至关重要的因素。为实现这一目标,大型物联网企业的关注点主要集中在物联网开发平台上,其可扩展的应用程序和服务开发过程使测试和编码的工作量得以减少,通过降低交付的时间成本来提升产品的上市速度。


事实上,当今物联网发展的最大障碍来自企业内部结构尚未完成调整。面对错综复杂、千变万化的物联网环境,传统企业欠缺的是高效、强团队协作的文化和氛围。


如果企业管理层能够早些认识到到物联网市场的本质,就会发现提升竞争力的最大障碍在于企业的开发、运维结构方式。在处理各类联网设备或多个传输节点中的大量数据时,软件开发团队的人员、流程和工具使用什么样的整合方式,就决定了该解决方案在市场中能占据怎样的地位。在此情形下,DevOps成为了物联网企业的最佳选择。DevOps最早被提出于2008年多伦多敏捷会议,经过各界精英近15年的尝试与打磨,已通过其快速周转、高速与敏捷性为物联网解决方案带来了巨大改善。


众所周知,联网设备有着持续部署软件的需求,而当前很多企业在应对持续部署的项目中出现的挑战时往往经验不足。本文将对物联网的难点和痛点进行论证,并展望物联网行业未来的发展趋势。


01

DevOps在IT和在IoT中的比较

IT,全称为Information Technology,即人们熟知的信息产业。在IT行业,DevOps的应用相对简单。


与简单的软件工程实践中的DevOps相比,在IoT解决方案中应用的DevOps 有一些根本区别。在IT行业,DevOps的应用相对简单。

DevOps在IT的应用.png

▲DevOps在IT的应用


从图中可以看到,DevOps在软件工程实践中的实现较为简单,但这在物联网行业则是截然不同的。一旦加上连接设备、传感器、统一协议或网关后,整个实践就会变得异常复杂,具体表现在以下几方面:


复杂且分散的的开发流水线:DevOps在物联网中实现和纯粹的IT软件是相同,但其多样的开发流水线,如固件、服务端代码、移动端应用程序和桌面应用程序,都需要部署到不同的节点。硬件设备的设计和升级复杂度的提升对每条流水线的技能、流程都带来了更高的要求。保证一条指定流水线的正确性与稳定性并不难,但集成所有的流水线来确保产品的整体质量,则是一个严峻的挑战。对全部流程进行管理和升级是必不可少的——将开发、构建、验证、测试进行集成,以确保代码随时可以更新或修复漏洞,从而保证产品的整体质量。


传统设备的解决方案支持:云基础设施产品的出现引入了管理、更新、维护设备等新需求,传统如摄像机、传感器等设备行业也正向物联网发展,再次增加了DevOps的实现难度:端到端设备之间的工作流也必须进行严格测试。具备自主学习和云数据采集/分析功能的新型恒温器,成为了自动化产品家庭市场的标杆,也为同类产品解决方案设计者和测试团队带来了巨大挑战。


环境即代码:处理多个虚拟化设备和服务器基础设施之间的关联成为了产品工程师亟需解决的难题。传统的“基础设施即代码(Infrastructure-as-Code,IaC)”的观念需要扩展为“环境即代码”:无论是私有云还是公有云,企业的支出模式都正从资本支出转向运营支出——只为需要的内容付费。这就需要对边缘设备进行虚拟化,以便集成云数据分析并对用户的终端设备进行测试。


复杂的产品线:各类市场领域定制化需求的出现带来了各式各样复杂的产品线,从而诞生了众多更为复杂的生产环境,产品开发阶段的复现和维护可谓是难上加难。


发布节奏多样化:不同的产品解决方案由不同的固件、Web应用、移动应用和PC应用组成都有着不同的发布节奏,Web补丁应用程序升级可以按月发布,但是设备升级的版本发布可能需要3到6个月不等。除非有一个完备的过程来定期集成代码,否则不同版本的开发将使产品发布计划变得异常困难。DevOps可以达到物联网更新实用性和频繁程度的平衡。


虽然当前大部分的物联网开发人员已经可以以50%-60%的程度实现DevOps工作流,但人们大多对敏捷方法的使用有着不同的选择,进一步增加了物联网生态系统的复杂性。


市场上现有的物联网持续集成方向的主流商业工具仍有需要改进的地方:需要集成多个分散的开发流水线、进行主要框架和定制化的构建等,包含自动化环境配置、代码检查、回归测试和生成测试报告。


传感器和物理设备(VCloud、VSphere)的仿真模拟可以使物联网的持续测试更加有效,CI工具(Jenkins、Bamboo等)可以实现自动化测试框架的生成,而将这些不同的技能、工具和流程紧密结合起来,就得到了物联网的DevOps。


02

嵌入式设备安全和内存安全

由于物联网存在多个部署节点,因此对安全问题的考虑需要更加全面。一般来说,物联网领域存在三种数据类型的风险:静态数据、动态数据、云端数据。服务器或云端可能存在计算风险,物理终端设备也可能存在硬件篡改的风险,物联网的DevOps需要一个强大的安全策略,包括但不限于认证、无线更新等方面。


2016年10月21日,美国东海岸地区遭受大面积网络瘫痪,其原因为美国域名解析服务提供商Dyn公司当天受到强力的DDoS(Distributed denial of service attack,分布式拒绝服务攻击)攻击所致,涉及到的网站包括Twitter、PayPal、GitHub等。这是一起典型的黑客通过控制多台物联网设备发起的DDoS网络攻击行为,攻击流量来源于感染了Mirai僵尸网络程序的设备,其中主要感染的设备有CCTV(Closed-circuit television,闭路电视)摄像头、DVRs(Digital Video Recorders,数字视频录像机)以及路由器。

image (3).png

▲受到DDoS攻击地区的影响分布图


物联网开发环境中的安全问题可以通过在设备上插入识别控制模块,使其具备唯一标识来减少。为使DevOps的实现效果达到最佳状态,可以通过在对已部署更新设计和架构的特定设备参数进行更新和监测实现,也可通过动态规则引擎对数据进行提取和预处理来达到。


03

物联网DevOps的未来构想

物联网企业通常会面临具备专业技能、知识的人才资源或储备不足的情况,影响项目进度。为避免这一问题,需要对现有开发人员进行技术培训,同时也要考虑到员工对于新技术、新流程的抵触,也可根据自身需求引入外部专家来解决DevOps技能、知识缺乏的问题。


更多DevOps相关内容,欢迎点击link或访问 www.digiproto.com 进行了解!


参考文献

[1] Manyika, James; Chui, Michael; Bisson, Peter; Woetzel, Jonathan; Dobbs, Richard; Bughin, Jacques; Aharon, Dan. “Unlocking the potential of the Internet of Things.” June 2015. McKinsey.com. 19 January 2017.

[2] John Roberts, Jeff. “Who to Blame for the Attack on the Internet”. Oct 24, 2016. Fortune.com . 19 January 2017.

[3] Applying DevOps to IoT solution development - Embedded.com

标签: DevOps 物联网
首页
产品
新闻
联系