BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

为IoT应用搭建DevOps管道

| 作者 Hrishikesh Barua 关注 15 他的粉丝 ,译者 张卫滨 关注  他的粉丝 发布于 2017年2月27日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

在MSDN站点最近的一篇文章中,Daniel Meixler探讨了一个针对物联网(Internet of Things,IoT)应用的完整DevOps生命周期,用到了微软的框架和组件。这个理念稍作改动就可以泛化应用到其他IoT平台上。

一般来讲,DevOps在Web应用中最为流行,但它并不是与特定技术或特定类型的应用绑定的。这篇文章介绍了如何为冰箱控制应用创建端到端的DevOps生命周期,证明了这种理念。对于完整的自动化CI/CD链,人们会予以特别关注。一旦特定应用所面临的挑战已明确,那么这些挑战就可以使用所选择的技术栈来解决。有一些概念是通用的,能够以技术无关的形式进行重用。

示例应用仿真了一个冰箱控制系统,运行在Raspberry PI上。针对这种IoT应用的开发管道(pipeline)会面临着各种挑战。这种管道需要涵盖每次check-in之后的自动构建、自动化UI测试、部署到各种环境(包括生产)并收集遥测数据。通常,UI测试是比较困难的,在设备上的自动化测试则会更加困难。在这种环境下,DevOps所面临的挑战还包括可审核性与设备兼容性,但是这些问题在本文中并没有解决。

针对问题中所提及的冰箱应用,部署需要发布到测试设备(QA)和客户的设备(生产环境)上。后者并不容易实现,因为通常没有到这些设备的物理连接。在这种情况下,设备的数量会非常庞大,并且位于客户的专属环境中,跨越非常广大的地理区域。最后一个需求,也就是遥测,为IoT设备带来了另外一个挑战,因为这些操作通常没有太多的人工干预,用户没有办法反馈应用运行情况的信息。收集手动反馈并不是可行的方案。

这里做出的技术选择会优化管道,而且没有太多的定制。IoT平台是Windows 10 IoT Core,应用是一个Windows Universal App(UWP)。编排平台是Visual Studio Team Services(VSTS)。VSTS有一些特性致力于简化DevOps流程。按照微软的技术栈,这里选择了Azure IoT Hub作为管理平台。它用来管理和配置IoT应用。Azure IoT Hub支持多种语言,这个应用用到了.NET和node.js。HockeyApp是微软在几年前收购的,它用来从设备上收集使用和错误分析数据。

图片来源于https://blogs.msdn.microsoft.com/dmx/2017/01/26/devops-for-iot-part-1/

当这个管道执行时,会生成新的应用,发布流程会通知Azure IoT Hub。Hub的责任是确保新版本能够在所有已注册的IoT设备上下载并安装。对于在线的设备来说,这可能会立即运行,而对于离线的设备,则可能会有一个延迟模式。

查看英文原文Setting up a DevOps Pipeline for an IoT Application

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT