【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发
摘要:Serverless、微服务,这些新技术和IoT有什么关系?纵观IoT行业的发展,云服务又扮演了什么角色?
IoT并不是一个新名词、新技术,很长一段时间,它甚至给人一种“下工地”的印象:由于IoT设备的落地场景经常与工程环境强相关,又不容易远程配置,所以难免“形象不佳”。
近几年,当IoT与创新、科技、互联网等挂钩时,成为一个相当“新锐”的行业,尤其云计算时代的IoT,有了许多让老树开新花的功能,也让这个行业有了许多新的想象空间。
比如,Serverless、微服务,这些新技术和IoT有什么关系?纵观IoT行业的发展,云服务又扮演了什么角色?
华为云云享专家董昕以业内人的视角给出了他的理解。
董昕是个喜欢折腾的人,既在Intel、中国银联、Trident这样的大公司待过,负责芯片、IoT、安全、云计算等多个领域的技术开发;同时,他也是一个连续创业者,肩挑背扛整个公司的技术架构,所以对中小企业在信息安全和云计算上的紧迫感有着深刻的认知。
如今,董昕担任国内某大型第三方支付公司的高级架构师,一直处在技术一线的他,对当前IoT行业的发展有着理性的洞察,以下是他对IoT技术发展趋势的一些预判。
物联网比互联网更适合Serverless
Serverless即开发人员无需再关注服务器的运维工作,直接将代码部署在云端,对外提供RESTful API 即可,云计算会自动根据请求编排资源。这种模式非常适合前端实现许多功能、后台记录状态的场景,可以说是大前端发展的必然趋势。
在董昕看来,目前各大云服务商针对IoT设备提供的物模型,本质上就是一种Serverless,甚至更进一步,已经是Codeless了。
沿着这个思路去考量互联网和物联网在Serverless上的差异,会发现 IoT 仅仅只是将联网的主体从人改成了物,而消息的请求与响应并无差别。甚至在大多数情况下,联网的物比联网的人,要更容易数据化,所需提供的服务也更单一,几个属性和服务就足以清晰的定义某类IoT设备。
所以从这个角度看,物联网比互联网更适合Serverless这种模式,而物模型就是这种模式在IoT上的落地形式。
Serverless 的发展趋势、优势与目标都可以匹配IoT,比如海量接入、快速扩缩容、可移植性等等。对于物模型,我们可以做与当下的Serverless几乎一致的畅想,把Serverless上的经验全盘复制到IoT的场景中,比如Serverless中最迫切的代码可移植性问题。
站在云服务商的角度,用户建立了物模型,就是与云服务商进行了强绑定。可对于普通用户而言,物模型的可移植性,甚至是物模型的编排工作,都是要解决的难题。如同 Serverless已涌现出了数家跨云服务商的中间件提供方一样,伴随着IoT的发展,物模型的编排将很可能将会成为开发者值得去探索的方向。
另外,在Serverless上暴露的物模型组件的继承与复用,传统代码与物模型之间的转译等问题,在IoT的将来都会是无边无际的蓝海,同时还有互联网软件的前辈们留下的宝贵经验,广阔天地,大有可为。
硬件正在不断的软件化,这个观点早已不再新鲜,但仍未过时。软件中的许多设计思想,都值得在硬件设计中去复制与实践。
每个IoT设备都是一个独立的微服务
“微服务”是软件行业里很热门的一个词,即把一个大的功能模块拆解成数个小的,然后在整个系统中,小模块可以合并、复用。微服务各司其职,大系统化整为零。
这样做的好处很多,但维护管理众多的微服务成了一个麻烦事,于是就有了Docker和 Google发布的微服务治理框架Kubernetes。
延续前文提过的“硬件正在不断的软件化”思路,每个IoT设备,从功能目标上看,都可以看作一个独立的微服务,所以软件微服务治理的那套规范一样可以运用到IoT设备上。
比如华为开源的KubeEdge项目——这个项目可以将容器化应用程序编排至边缘主机上,让每个边缘主机化身为微服务节点。准确的说,KubeEdge并不是部署在IoT设备上,而是针对边缘计算端的,毕竟目前绝大多数IoT设备的算力还不足以支持。
边缘计算节点作为IoT网关,联合各种终端IoT设备,已经完全足够成为一个微服务节点,也让算力能够提供更契合场景的定制化输出,而非单纯的依靠软件提供标准化产品。
类似的,在边缘节点成为硬件的微服务节点之后,软件微服务治理的设计思想也可以移植到了边缘计算当中,包括但不限于:CI/CD、DevOps、ServiceMesh、服务监控与追踪,甚至AIOps等等。我们时常说的“端边管云”也只有在这样的基础上,才能真正实现无缝连接、自由组合、实时配置等。
至彼时,IoT的工作模式就仿佛人类社会分工的某种终极形态:各个终端设备都具有能独自解决某类问题的能力,又可以随时与周边的其他设备组建团队解决棘手的问题,还能够从云端实时得到更多重量级的支援——这哪里还是以前“不受待见”的IoT开发啊,完全是一支海军陆战队嘛!我来,我见,我征服。
鸿蒙之我见:江湖路远,吾道不孤
鸿蒙虽时常被拿来与安卓对比,但它实际上是为IoT设备设计的,尤其是其模块化耦合的特性,完全是为IoT设备量身定做的。
相对于电脑和手机,IoT设备缺乏统一的标准协议,每种设备都可能只具备某种特性实现为此,鸿蒙提供了对不属性的设备做定制化裁剪的功能,而对于硬件资源的多寡,鸿蒙又设计了多层架构,各种设备可以根据自身资源的情况选择不同的层数。
简而言之,鸿蒙试图以一站式服务的方式,为各式各样的IoT设备提供从底层到应用层软件的全方位支持,让硬件制造商摆脱了软硬件双线作战的困扰,同时也为所有的 IoT 设备统一了标准与接口。
实际上,意图统一IoT接口标准这一野望,安卓和苹果都曾以Android@Home和HomeKit的方式奢望过。但应者寥寥,归根结底,具备了软件开发能力的硬件制造商,即便是面对 Google和苹果这样能为其提供海量流量的巨头,也不愿惟其马首是瞻,从而最终彻底丧失独立性。
而在软件上乏善可陈的制造商又难入巨头的视野,也难堪海量流量的冲击。于是,这种只定义接口让厂商自行实现的方式最终沦为一场双输的博弈,看似风光无限,实则互相提防。
不只是系统设计,鸿蒙在功能特性上也为IoT设备提供了丰富的想象空间,比如分布式软总线。
以往我们在讨论总线,都是在一个固定且封闭的硬件组合当中,比如电脑的南北桥总线, SoC芯片内部的AMBA总线——都是在一个封闭的硬件环境中,各功能模块固定不变的情况下,以硬件的方式实现的总线。
而在鸿蒙的场景下,多个IoT之间是通过网络连接,各组件也随时都可能下线或属性变更。打个简单粗暴的比方,分布式软总线是要在把电脑拆散了,各个模块通过有线/无线的方式进行通信,且都支持热插拔的情况下,用软件协议的方式将各个模块串接起来,同时还需确保数据安全与读写效率。
事实上,不止是华为,Google正在研发的新一代操作系统Fuchsia,本着一样的目标,也在积极推进中。星辰大海,百舸争流。
结语
曾经,单独一个IoT设备既不起眼,还需要不少的人力维护,甚至必须到现场蹲点,实在是一个费力不讨好的行当。现在,云计算的浪潮正改变这个行业,星星之火,必将燎原。当老树发新芽,在新技术的加权下,如何把握IoT大势中新一轮浪潮,让我们拭目以待。
【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发的更多相关文章
- 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
[摘要] 微服务架构的本质在于分布式.去中心化. 随着互联网的高速发展,庞大的用户群体和快速的需求变化已经成为了传统架构的痛点. 在这种情况下,如何从系统架构的角度出发,构建出灵活.易扩展的系统来快速 ...
- 华为云MVP:来自工业制造领域的微服务与云平台实践
[摘要] 首先,和大家先聊聊的是为什么微服务.DevOps和云计算会在各个产业大行其道;其次,再谈谈微服务架构设计有那些自己独特的设计思想,和传统的SOA有什么区别;最后,我们再一起看一看在工业领域云 ...
- protobuf / Consul / 边缘计算 / MEC / CDN / Serverless / GraphQL / 微服务 / 网关 / 云原生 / Serverless (真能造概念啊!!!)
技术概念层出不穷,学吧!记录下自己多这些概念的理解 protobuf: 数据结构而已,类比XML, JSON consul 解决的只是微服务里的服务注册与发现,健康检查等. 边缘计算:可以理解为是指利 ...
- 用友iuap云运维平台支持基于K8s的微服务架构
什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大 ...
- 基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 前言:关于什么是容器微服务PaaS和容器微服务PaaS的 ...
- 2019年微服务实践第一课,网易&谐云&蘑菇街&奥思技术大咖深度分享
微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微 ...
- 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发
<ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...
- TOP100summit:【分享实录-华为】微服务场景下的性能提升最佳实践
本篇文章内容来自2016年TOP100summit华为架构部资深架构师王启军的案例分享.编辑:Cynthia 王启军:华为架构部资深架构师.负责华为的云化.微服务架构推进落地,前后参与了华为手机祥云4 ...
- 巨杉Tech | 微服务趋势下的数据库设计与应用简析
周五(7月12日)巨杉数据库参与了由得到App主办八里庄技术沙龙活动,分享主题是关于分布式数据库架构与实战. 以下就是根据巨杉数据库现场分享的内容进行的分享实录整理. 巨杉数据库简介 巨杉,专注新一代 ...
随机推荐
- xss攻击与防范
xss攻击方式以及防范 通常来说,网站一般都是有着,用户注册,用户登录,实名认证等等这些需要用户把信息录入数据库的接口 xss找的就是这种接口,他们可以在传递数据的时候,传递恶意的 script ...
- springboot同一项目部署多实例
添加 -Dserver.port=xxxx 将配置文件放在nacos注册中心时,要记得在启动第二个实例记得把原来端口注释掉,如果配置文件在本地就不必注释掉了
- MathType中如何编辑求和公式
在学习过程中,尤其是在写需要用到数学公式的论文的时,需要输入数学公式并进行格式编辑等,那么对于简单的公式可以使用Office自带的公式编辑器,对于复杂的公式建议使用专业的公式编辑器MathType,该 ...
- 给PDF批量添加文本链接
为了进一步补充说明文件中的一些重要内容,PDF文件的创建者会为一些文本创建链接,方便阅读者访问相关的网站,获取更多的信息. 我们可以通过使用pdfFactory文本链接功能来实现以上需求,另外,我们还 ...
- 庐山真面目之四微服务架构Consul和Ocelot简单版本实现
庐山真面目之四微服务架构Consul和Ocelot简单版本实现 一.简介 在上一篇文章<庐山真面目之三微服务架构Consul简单版本实现>中,我们已经探讨了如何搭建基于Consu ...
- C++ cout格式化输出完全攻略
写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看. 部分内容来自教程:C语言中文网(一个很棒的网站) 有时希望按照一定的格式进行输出,如按十六进 ...
- CF1156D 0-1-Tree
路径考虑顺序. 显然合法的路径只有以下两种: 一段 \(0\) 加一段 \(1\) 或一段 \(1\) 加一段 \(0\). 全 \(0\) 或全 \(1\). 用并查集将边权为 \(0\) 和 \( ...
- Grakn Forces 2020 ABCDE题解
看到老外评论区中说,这场的难度估计是\(div.1\)和\(div.1.5\)的合并 A. Circle Coloring #构造 题目链接 题意 给定三个长度为\(n\)数组\(a,b,c\),要你 ...
- C语言入门最后一阶,掌握这门知识,你就进入提高阶段~
哈喽,伙伴们,我们前面讲了C语言的发展史,基本数据类型,变量与常量,表达式,基本结构等等,今天是作为C语言基础入门的最后一个阶段:输入与输出. 以上这些知识你能够掌握好,就可以开始进入C语言的进阶提高 ...
- 【问题记录】— web页面调用本地程序
起因: 最近由于项目需要在web页面中调用本地部署的exe程序:进而对该功能实现做了对应了解:以及存在的问题进行记录. 要实现该功能就不得不说浏览器自定义协议:解决办法:那么它是什么呢? 浏览器自定义 ...