现在的位置:主页 > 综合新闻 >

可编程的流式计算框架:YoMo(2)

来源:电脑编程技巧与维护 【在线投稿】 栏目:综合新闻 时间:2021-07-09

【作者】网站采编

【关键词】

【摘要】我们提出gRPC for IoT的理念。gRPC是一个很主流的微服务RPC框架。gRPC for IoT就是希望在边缘端可以实现全链路的QUIC Transport。例如Client/Server服务可以通过QUIC建

我们提出gRPC for IoT的理念。gRPC是一个很主流的微服务RPC框架。gRPC for IoT就是希望在边缘端可以实现全链路的QUIC Transport。例如Client/Server服务可以通过QUIC建连从而变成P2P的模式。传统Client/Server的问题在于只有在Client请求以后Server才会响应,这种模式是单向的。而用QUIC建连之后,就是双向连接Peer to Peer,同时又是长链接。为什么是长链接?因为IoT设备数据是24小时不间断的,如果每次请求都断开、重新建连会造成时延的影响。

另外我们针对IoT领域推出自研的Codec。熹乐科技在IoT领域很重视网络传输编解码的效率方面。IoT数据的实时采集并通过长链接发送的模式和视频直播是很相像的。

IoT的设备到2025年将达到750亿。这意味将有越来越多的设备需要进行数据采集,由此产生的APP应用也会越来越多。

现在市场对APP的开发要求越来越快,time to market越快越好,现在很多低代码、无代码就是为了缩短开发时间。YoMo框架十分重视开发者友好,以便开发者使用时可以节省时间。

为了节省开发时间我们提出了Streaming Serverless的概念。Serverless的优势在于只需要专注几行核心代码、无需关心 DevOps、自动弹性伸缩,以及按需计费,低成本。IoT领域的数据是24小时不间断产生的、没有边界,是典型的streaming场景,虽然现在已经有很多比较成熟的Serverless框架,但市面上大多数 Serverless 框架是面向传统的HTTP Request/Response 模式。因此我们针对该场景提出了Streaming Serverless。

这是一条比较有意思的推特。这个推特是Docker的创始人在2019年提出来的,他在推特中提到,如果2008年出现WebAssembly,那么他们都没有必要去创建Docker了。WebAssembly之前跑在浏览器端比较多,现在的趋势却是跑在服务端。

WebAssembly和Docker相比具有哪些优势呢?WebAssembly的Cold Start会比Docker快100倍。其次前者执行时间较后者也快10%-50%。另外WebAssembly 占用的空间更小。最后WebAssembly有更灵活的安全策略,可以根据不同模块,在实例化时指定不同权限。

因为在边缘节点资源会比较受限,所以WebAssembly综合了轻量级、更优的性能、更高的安全性和多语言的特点。多语言对于Serverless尤其重要,因为现在很多主流的开发语言都支持把程序编译成WebAssembly,具有这样的特点会有很多的好处。

综合上述的方方面面,我们做了YoMo开源框架。

YoMo应用案例

03

再来分享几个典型的案例。

我们在办公室部署了一个实时噪声传感器,来测试YoMo框架是否能达到低时延。因为MQTT协议需要安装MQTT Broker,所以我们在数据采集端做了一个MQTT兼容的API,这样可以减少用户的负担,无需安装 MQTT Broker 即可接入 YoMo。为了测试实验,我们将Serverless的节点部署在宁夏的AWS,来测量北京到宁夏,再从宁夏返回北京的时延。我们的测试结果显示时延基本能稳定在30ms以内。另外像屏幕上显示的分贝值,传统的做法是把传感器数据先保存到数据库,然后再进行查询显示,这样就会造成时延的损失,所以YoMo采取通过WebSocket直接显示到屏幕上。同时用另外一个 Serverless服务把数据落地到 DB。

白酒智能酿造平台是一个工业级的应用。白酒行业的一大特点是很多酿酒工艺是通过老师傅的经验传授,这样是非常主观的。我们在和一个研究白酒几十年的专业研究院——中国食品发酵工业研究院合作后,获得了他们提供的硬件和相关的工业算法。接着我们对这些设备进行了实时的工艺采集和计算,把老师傅的经验数字化,从而获得稳定的工艺,提高了出酒率和效率。

海外有一个用户想做用户行为的跟踪,分析一些网站上用户什么样的行为会导致转换率的降低等问题。针对这样的场景,我们做了Geo-Distributed的分布式解决方案,将传统的中心化架构拆分成多个靠近用户的边缘节点。

最后一个案例是分布式的爬虫。我们服务了一个海外提供物流查询的SaaS公司。之前这个公司的查询都是通过 proxy去获取,这样会造成很高的时延,同时稳定性也不高,更加严重的是数据隐私可能泄露。通过YoMo框架,我们在更靠近快递公司的节点部署了一个爬虫服务,通过QUIC协议,把请求通过长连接返回给美国的用户。这些服务器都是部署在用户自己的机器上,数据隐私得以保障,也节省了proxy代理的开支。

文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2021/0709/1203.html

上一篇:Fami通新一周销量榜 《第一次的程序设计》二连冠
下一篇:糟糕程序员的编程风格。。。

电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: