咱们已经将愈来愈多的设备链接起来,采集海量的数据,利用云端海量的计算能力和处理能力,进行设备的远程监控,预测分析,远程控制等功能,而机器学习,人工智能技术也愈来愈多的被用到物联网的解决方案中,让咱们的设备便的更加智能。在传统的物联网解决方案中,设备端只是做为数据的源和命令执行端,并不具有逻辑处理能力,但在不少场景下,咱们但愿实时的响应能力,设备变得愈来愈智能,好比: docker
从这个需求上来说,咱们除了须要物联网场景中云端的大规模计算和接入能力外,也须要设备端具有必定的逻辑处理和智能,Azure的IOT Edge为设备赋能,让你把人工智能,逻辑处理能力从云端带到边界设备上,让设备具有智能,云端的IOT和设备端互相协做: 安全
在下面的例子中,我将介绍如何将你的机器学习模型部署到IOT边界设备,实现设备端的逻辑处理和人工智能,基本的部署模型以下: 机器学习
一些基本的组件和服务介绍以下: 学习
IOT Hub服务:部署在Azure端的物联网服务,支持百万量级设备链接,进行IOT edge设备管理和双向链接控制,经过module twins和设备twins同步云端和设备端状态 测试
IOT Edge模块:IOT edge上的模块其实是Docker容器,也就意味着只要是能够容器化的服务,模型,代码,均可以部署到边界设备(无限想象力吧),另一个层面也说明,只要能够支持Docker的ARM/X86嵌入式设备,均可以做为IOT Edge设备 人工智能
IOT Edge 运行时:IOT Edge设备上的运行的管理程序,管理部署在设备山过的模块,并负责安全通信等工做。 spa
目前IOT Edge在本例中,测试使用的是Azure public帐号,并使用Mac OS做为模拟IOT Edge设备,但由于IOT Edge的运行时和模块都是容器,其实在实际的设备和Linux,Windows上并无太大区别。例子介绍主要分为3个部分: 代理
前提条件(本文略过Azure CLI和Docker的基础介绍,若有兴趣,能够参考笔者以前文章): blog
az group create --name myaksdemo --location eastus 资源
az iot hub create --resource-group myaksdemo --name myiotsteven --sku F1
添加新的设备并选择启用:
在IOT Hub端注册完设备后,咱们就须要配置边缘设备上的运行时了,IOT Edge的运行时由两个模块组成,IOT Edge边界代理主要负责保证模块部署以及监控;而IOT Edge中心主要负责安全和通信。
因此当你部署的时候,你的IOT Edge边界上的代理会先启动,而IOT Edge Hub中心会在你部署一个模块以后启动,首先来安装IOT Edge控制脚本
配置IOT Edge边界设备的运行时:
sudo iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords
而后咱们就能够启动边界运行时,能够看到,他是以docker的一个容器的方式在运行,在这个时候,咱们尚未部署任何模块:
下一部分继续介绍。