为IoT应用搭建DevOps管道
在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
为IoT应用搭建DevOps管道相关推荐
- 使用开源工具构建DevOps管道的初学者指南
DevOps已成为修复缓慢,孤立或不正常运行的软件开发流程的默认答案.但是,当您不熟悉DevOps并且不确定从哪里开始时,这并不意味着什么.本文探讨了什么是DevOps管道,并提供了五步创建过程.虽然 ...
- 测试环境搭建流程_前端构建 DevOps 搭建 DevOps 基础平台(中)
前言 搭建基础平台搭建上篇的时候的时候,已经介绍过了项目流程设计.数据库搭建.jwt 登录等模块. 此篇我们介绍分支管理设计及其他的基础模块. 后端模块 DevOps - Gitlab Api使用(已 ...
- devops 开源工具链_使用开源工具构建DevOps管道的初学者指南
devops 开源工具链 DevOps已成为修复缓慢,孤立或其他功能不正常的软件开发流程的默认答案. 但是,当您不熟悉DevOps并且不确定从哪里开始时,这并不意味着什么. 本文探讨了什么是DevOp ...
- devops测试_使用DevOps管道自动执行用户验收测试
devops测试 验收测试 (也称为用户验收测试(UAT))确定系统是否满足用户需求,业务要求和授权实体标准. 通过软件开发生命周期(SDLC)开发应用程序时,每当有新设计时,都会重复测试. 在许多公 ...
- 树莓派 + Windows IoT Core 搭建环境监控系统
前言:Windows IoT 是微软为嵌入式开发板设计的一种物联网操作系统,运行Windows UWP(C# 开发),可以设计出丰富的交互界面,驱动GPIO,连接一些传感器做有意思的事,本文详细介绍如 ...
- 使用IoT Studio搭建气象监测屏
1.概述 本实践案例中使用LoRa气象监测设备监测气象信息,上报温度.湿度.大气压.经度.纬度等数据,并使用IoT Studio平台搭建监控大屏,展示气象监测设备最新上报的数据和历史数据曲线图. 架构 ...
- IoT开发——WIFI模块ESP8266 RTOS SDK V3.0.0环境搭建
目录 1. 环境概览 2. 安装Ubuntu操作系统 3.搭建编译环境 3.2 环境准备 3.3 环境配置 3.4 设置串口,进行编译 3.5 配置elipse编译器 (1)安装eclipse (2) ...
- 开放下载!《阿里巴巴 DevOps 实践手册》
简介:覆盖 DevOps 演进史.核心理念与阿里巴巴 DevOps 最佳实践的全方位解析手册,揭开阿里巴巴高效研发的秘密! 最新下载>><阿里巴巴DevOps 实践指南>了解详 ...
- Centos+Gitlab+Jenkins 针对.NET项目持续集成环境搭建和自动化部署
目录 一.前言 二.系统环境 三.Gitlab安装 3.1 安装依赖软件 3.2 开启postfix 3.3 安装Gitlab 3.4 设置服务器IP和端口 3.5 重置并启动GitLab 3.6 浏 ...
最新文章
- mysql触发器运算_在MySQL中使用触发器计算列值?
- S01E05 Android体系结构
- 多个切点 boot spring_全网独家Spring/Cloud/MVC/Boot,脑图+面试+进阶,就问你服不服?...
- jBPM3.12用户指南中文翻译----第二章 起步
- rxjs里withLatestFrom operators的用法
- C# .net 中 Timeout 的处理及遇到的问题
- 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
- VS2010中的顺序图
- LaTex论文编写常用代码
- 深圳活用大数据提升气象服务
- alsa内核文档翻译之——overview.txt
- 网赚 CashFiesta 简介及操作攻略
- linuxwindows应急响应
- python2.7 BeautifulSoup 爬QQ空间说说-含源码-第一天
- 英语绕口令(转)[Blog synchronous]
- Failed to load API definition
- 初中计算机考试的题型,教师资格证考试中学信息技术科目题型及分值分布,快看!...
- kindle 电子书
- 代码记录丨小青蛙和汉诺塔
- 普通人如何做到“我命由我不由天”