一位程序员 8 年的物联网奋斗史

物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通信设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本。Gartner 预测,物联网设备在 2021 年将增长到 250 亿。物联网很有可能成为继 AI 和区块链之后的下一个风口。各大云服务商也分别推出了自己的物联网平台和服务。比如,阿里云 IoT、AWS IoT……但如果你正在从事物联网项目的开发,或者打算投身于物联网应用开发事业,再或者想做一些物联网的知识储备以应对不断变化的技术趋势……那么,还是需要好好规划下自己的学习路径。

理解物联网软件的设计思路和实现逻辑

其实我们可以把物联网开发和 Web 开发进行以下类比。先来回想一下我们是怎么学习 Web 开发的。首先我们会了解一下 HTTP 协议,然后选择一个框架,比如 Java 的 Spring Boot、 Python 的 Django、Ruby 的 Rails 等。这些框架提供固定的模式,对软件进行了高度的抽象和分层,比如集成了一些 Web 开发的 Good Practice。你知道在 Model 层处理业务的逻辑,用 ORM 来进行数据库操作,在 Controller 层处理输入输出和跳转,在 View 层渲染 HTML 页面……这样一个网站和 Web 服务就能够很快被开发出来,除了性能优化的时候,你几乎不用去想 HTTP 协议的细节。回到物联网开发上,抛开设备端的异构性,单说服务端的架构这块,和 Web 开发不同的是,物联网开发并没有一个 Well Known 的模式、架构或开发框架,开发者往往还是需要从协议这一层慢慢往上搭积木,学习曲线还是比较陡的。我的上一门课程《MQTT 协议快速入门》详细讲解了 MQTT 协议及其各种特性。在课程的交流群中,读者们也提了很多问题,除了关于 MQTT 协议本身的内容以及特性相关的问题之外,还有很多问题是关于物联网软件设计和架构方面的,比如:我应该如何管理我的设备和设备的状态?业务服务端应该怎么接收、处理和存储来自设备的数据?我的设备数量很多, Broker 端应该怎么架设来确保性能和扩展性?我的设备处理能力有限,除了使用 MQTT 协议以外,还有没有其他的选择?……因此,我希望为大家制作一门《从 0 开始搭建 IoT 平台》的课程,把我积累的一些物联网平台在架构和设计模式等方面的经验分享给大家,学完之后,应该可以覆盖大家在物联网开发中 80% 的场景和可能遇到的设计和架构问题。扫码了解《从 0 开始搭建 IoT 平台》课程详情

关于我

我是付强,现在是一家物联网 startup 的联合创始人兼 CTO,在自己创业之前,我曾经在趋势科技和诺基亚工作过。从 2011 年我在硅谷参与的第一个物联网项目算起,至今我在物联网这个行业已经摸爬滚打 8 年了。2015 年,我开始在物联网方向进行创业,我的第一个决定就是先实现一个供业务系统和设备使用的物联网平台。当时阿里云的 IoT 平台已经上线,由于功能性和定制性方面暂时满足不了我们的需求,最后还是决定自行开发。我们自研的物联网平台很好地支持了业务服务端和设备端的快速迭代。

同时,我也在密切地关注着各大云服务商(比如阿里云、AWS 等)提供的 IoT 平台,在一些功能上,我们的设计思路和实现逻辑是非常相似的,同时我也会把在云 IoT 平台上的新功能或者更好的实现集成到自研的物联网平台上。我希望把我多年的经验积累都分享给你,让你在物联网开发这条路上,少走些弯路、少踩些坑。

这门课程是如何设置的?在本门课程中,我们将使用开源的组件,从第一行代码开始,一步步地实现一个具有阿里云 IoT 平台大部分的功能的"物联网平台"(这里给这个"物联网平台"起了一个代号:Maque IotHub, 简称 IotHub)。在这个过程中,我会穿插讲解在物联网平台开发中可以用到的模式和架构的选择, Pros and Cons,以及一些 Best Practice 等。首先,我们会设计和开发 IotHub 的最基础功能对设备的创建、接入、 上线/下线、 禁用/恢复和删除的整个生命周期进行管理,引入设备的发布订阅权限管理。同时也会把服务端代码和设备端代码的框架搭建起来,便于后续的迭代开发。这部分最后也会讲解如何横向和纵向地扩展 EMQ X然后,我们会设计和实现 IotHub 的上行数据处理功能和 IotHub 的指令下发功能,然后利用上行和下行通道实现物联网应用中一些常见的功能,比如 OTA 升级、设备分组等,以及实现非常常见的设备影子功能。接着,我们通过学习如何编写一个 EMQ X 插件,掌握扩展 EMQ X 的能力。最后,我们将讨论 MQTT 在某些场景下的缺陷,学习另外一种物联网协议 CoAP,并将 CoAP 无缝接入到现有 IotHub 的设备体系中

与《MQTT 协议快速入门》侧重协议内容和理论不同,本门课程包含大量的实战代码,毕竟代码是程序员之间交流的最好语言。

课程学习目录

早鸟福利1. 限时 ¥49,原价 ¥69。2. 获取分享海报,邀请好友订阅即可获得 ¥17.85 返现,多邀多得,上不封顶。点击阅读原文,现在订阅课程,享受特价哦!!