物联网正在快速增长,但仍然处理不太理想的工具。让我们看看自动化物联网的DevOps工作流是否有助于解决这个问题。
许多物联网软件开发人员在向最终用户提供应用程序方面受到不完善的物联网工具和平台的限制。但是,构建DevOps工作流可以帮助解决这个问题吗?
物联网正在我们的生活中建立一个不断增长的存在。智能手表,应用了Alexa的智能音箱在我们的家园,边计算物联网节点工业4.0的工厂,以及能源行业,其中包括自动驾驶汽车特斯拉和自动驾驶卡车从奔驰,甚至是亚马逊的自助式杂货店没有收银员-所有这些都是我们先进世界的现实。
物联网生态系统每天都在增长,但仍然受到障碍和挑战的阻碍。其中最明显和最不可避免的是对硬件限制的依赖以及整个开发空间的不成熟。这意味着每个物联网开发人员都必须处理所选SDK的局限性,并生成功能有限的应用程序。最难的是向最终用户交付软件和现场更新过程,因为这些只能根据一个或两个场景(更新当前在线的设备或离线设备的延迟更新)。
DevOps软件交付方法的核心是自动化多个基础架构管理操作,以加快软件开发生命周期。Devs和Ops之间开发的DevOps文化旨在最大限度地提高客户的价值,并持续整合他们的反馈,以促进产品或服务的最佳使用。
尽管主要集中在现有企业工作负载的Web开发和基础架构支持上,但DevOps工作流可用于自动化任何软件相关流程,包括物联网应用程序开发,部署和管理流程。
在物联网流程中使用DevOps实践的好处
物联网应用程序开发的过程实际上与任何其他软件开发过程非常相似,有几个可以理解的变更。物联网开发人员需要与其他人一样的基础架构设置:
具有版本控制的开发环境和代码存储库;为QA构建和自动化单元测试环境;向现有产品交付现成产品并在必要时回滚的可靠方法;用于在应用程序上获取用户机器反馈的工具(遥测等)话虽如此,AWS或Azure以及GCP或IBM都有各种物联网开发产品和服务。根据目标受众(以及最终用户部署的设备),物联网开发可能会使用大量平台,SDK和服务。然而,尽管起点不同,发布的方式基本相同,因此标准的DevOps工具,如Kubernetes,Terraform,Jenkins,Ansible等,可以在流程的云端使用。在客户方面,将会有像RaspberryPi2或3这样的设备,它们应该使用某些API通过Wi-Fi连接与云进行交互。
使用DevOps方法提供物联网软件的挑战
这里的主要问题是最终用户配置会发生很大变化,而用于应用程序交付的技术堆栈实际上非常有限。这意味着只有最标准化的配置才会被%覆盖,而在测试期间可能不会考虑某些边缘变体,这将导致错误和故障。例如,最终用户边缘计算节点使用在产品测试阶段期间未包括在可能配置中的硬件,这将导致服务停机。
下一个主要问题是连接,这意味着如果连接消失,更新可能会崩溃。因此,物联网应用交付的持续集成/持续交付(CI/CD)管道必须包括运行状况检查脚本,回滚到稳定版本,然后重新启动更新。
然而,自物联网时代开始以来,这些挑战就在这里,现在大部分时间都要解决,或者很快就会解决。主要的云服务提供商增加了他们的生态系统,使物联网开发人员能够使用越来越多的各种SDK和API,为他们的客户带来更多价值。
关于DevOps和物联网的最终想法
由于DevOps工作流程的主要重点是提高云基础架构操作的效率,因此它与物联网软件开发的需求非常吻合。一个体面的基础架构支持团队可以使用与基于Web的应用程序相同的工具来构建IoTCI/CD管道。主要的挑战是为尽可能多的硬件配置编写测试,并确保从目标设备获得流畅的反馈。一旦数据从IoT节点进入云-它就可以根据DevOps实践安全地处理。因此,使用DevOps工作流对于IoT应用程序生命周期来说非常可行。
转载请注明:http://www.0431gb208.com/sjszlff/7753.html