0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

探討可編程的流式計算框架:YoMo

LiveVideoStack ? 來源:LiveVideoStack ? 作者:洪小堅 ? 2021-06-04 16:50 ? 次閱讀

音視頻領域的新技術應用非常多,但是在工業(yè)IoT領域,新技術的應用卻鮮有耳聞。本次上海站大會我們邀請到了熹樂科技YoMo框架負責人——洪小堅,為我們分享熹樂科技和YoMo會為工業(yè)和IoT帶來哪些新鮮血液。

大家好,今天分享的主題是可編程的流式計算框架。大家可能都比較關心音視頻領域,我們YoMo面對的場景比較偏向工業(yè)、IoT等領域。雖然是不同的場景,但是仍然有很多技術的共同點。大家聽完以后會有不少收獲。

今天的大綱分為自我介紹、YoMo項目背景、YoMo典型用例、YoMo技術亮點、對邊緣計算的理解以及總結。

關于我和熹樂科技

01

首先做一個自我介紹。

我是從2007年開始做技術研發(fā),做了12年歐洲用戶的電商平臺。因為對邊緣計算和工業(yè)互聯(lián)網(wǎng)都很感興趣,所以2019年加入了現(xiàn)在的創(chuàng)業(yè)公司——熹樂科技。目前我正在維護今天的主角——YoMo項目。

熹樂科技很多朋友都是第一次聽到,下面做一個簡單的介紹。熹樂科技專注于工業(yè)互聯(lián)網(wǎng)和邊緣計算,打造了YoMo開源計算框架和YCloud云服務。我們從2015年開始將人工智能技術應用于工業(yè)制造領域,例如計算機視覺對于地板的質量檢測。熹樂科技目前持續(xù)服務了40余家工業(yè)企業(yè)。在2019年與“中國輕工集團”共同成立了“中輕工互聯(lián)網(wǎng)有限公司”,主要是將邊緣計算等工業(yè)互聯(lián)網(wǎng)技術在輕工行業(yè)落地。

YoMo項目背景

02

下面介紹YoMo的項目背景以及設計的原理。

首先要介紹的是開放性。隨著網(wǎng)絡的基本設施,例如5G的普及,想要實現(xiàn)低時延看起來還是唾手可得的。5年以后,企業(yè)之間比拼的可能就是QUIC協(xié)議這種具有開放性的、基于User Space的可以作一些靈活擁塞控制的算法。未來的軟硬件可能都是可編程的、開放性的。

回過頭看看目前業(yè)內一些主流的技術,說到實時流式計算就會聯(lián)想到像Flink這種、消息隊列會想到Kafka。甚至我們微服務部署很多人會想到Docker,但這些技術其實都是幾年前開始設計的,都屬于消費者互聯(lián)網(wǎng)。未來會進入IoT的時代,之前的技術雖然現(xiàn)在還是主流,但是不一定會適合未來。我們在做產品的時候就想通過新的技術,來創(chuàng)造一些新的機會。

近幾年新聞報道了很多工業(yè)的事故,造成了巨大的人員傷亡和經濟損失。加之現(xiàn)在國家政策一直在鼓勵安全生產,所以我們的客戶就想做安全生產,例如數(shù)字化檢測和預警系統(tǒng)等?!爸休p工互聯(lián)網(wǎng)”去年就服務了一家化工企業(yè)。

安全生產的最高等級就是實現(xiàn)本質安全的理論。本質安全就是不論是設備故障還是人為操作不當,都可以提前預測事故的發(fā)生。要做到本質安全,就需要做到計算連續(xù)3s的數(shù)據(jù)變化趨勢。同時AI算法會對不久將來可能發(fā)生的事故做出反應。例如未來30s后可能會爆炸,這時就需要提前向化學反應堆里加阻燃劑。

要做到這樣的操作,還需要在1s內做到30次的計算,一次大約為33ms。如果這個計算節(jié)點部署在云計算中心,那么光數(shù)據(jù)的傳輸可能就已經超過該時限了。上面提到的33ms不僅僅包括數(shù)據(jù)傳輸,還要包括AI計算的時間。因此想要做到本質安全,就需要對傳感器的數(shù)據(jù)進行實時的采集和計算。

要做到實時采集就需要低時延的傳輸,一是利用類似QUIC的協(xié)議,二是隨著5G、WiFi6的普及,對保障低時延傳輸有很大的幫助。另外,我們需要對采集到數(shù)據(jù)進行毫秒級的計算,這就需要在邊緣端部署才能實現(xiàn)。如果部署在云端,即便計算速度很快,但因為傳輸速度的不足也會導致毫秒級計算無法實現(xiàn)。除了以上兩點,還需要在邊緣端部署一個Edge AI進行全維度的計算來實現(xiàn)預緊預測。

根據(jù)現(xiàn)在的趨勢,將來實時計算比例會越來越高,IDC預測2025年實時數(shù)據(jù)計算將會占比30%。

這是目前IoT領域的一些主流協(xié)議。TCP是1983年誕生,距離現(xiàn)在已經快40年。另一個主流的MQTT協(xié)議也已經誕生20多年。隨著5G的普及,這些老舊技術就像在動車鐵軌上跑的綠皮火車。Google在2012年就提出QUIC協(xié)議,在2016年進行 IETF的國際標準化。但是因為極大的升級成本,所以目前在工業(yè)領域目前用QUIC的并不是很多,但是在音視頻領域國內外用應用的卻很多。熹樂的目標就是將QUIC技術方便的應用到工業(yè)領域。

我們提出gRPC for IoT的理念。gRPC是一個很主流的微服務RPC框架。gRPC for IoT就是希望在邊緣端可以實現(xiàn)全鏈路的QUIC Transport。例如Client/Server服務可以通過QUIC建連從而變成P2P的模式。傳統(tǒng)Client/Server的問題在于只有在Client請求以后Server才會響應,這種模式是單向的。而用QUIC建連之后,就是雙向連接Peer to Peer,同時又是長鏈接。為什么是長鏈接?因為IoT設備數(shù)據(jù)是24小時不間斷的,如果每次請求都斷開、重新建連會造成時延的影響。

另外我們針對IoT領域推出自研的Codec。熹樂科技在IoT領域很重視網(wǎng)絡傳輸編解碼的效率方面。IoT數(shù)據(jù)的實時采集并通過長鏈接發(fā)送的模式和視頻直播是很相像的。

IoT的設備到2025年將達到750億。這意味將有越來越多的設備需要進行數(shù)據(jù)采集,由此產生的APP應用也會越來越多。

現(xiàn)在市場對APP的開發(fā)要求越來越快,time to market越快越好,現(xiàn)在很多低代碼、無代碼就是為了縮短開發(fā)時間。YoMo框架十分重視開發(fā)者友好,以便開發(fā)者使用時可以節(jié)省時間。

為了節(jié)省開發(fā)時間我們提出了Streaming Serverless的概念。Serverless的優(yōu)勢在于只需要專注幾行核心代碼、無需關心 DevOps、自動彈性伸縮,以及按需計費,低成本。IoT領域的數(shù)據(jù)是24小時不間斷產生的、沒有邊界,是典型的streaming場景,雖然現(xiàn)在已經有很多比較成熟的Serverless框架,但市面上大多數(shù) Serverless 框架是面向傳統(tǒng)的HTTP Request/Response 模式。因此我們針對該場景提出了Streaming Serverless。

這是一條比較有意思的推特。這個推特是Docker的創(chuàng)始人在2019年提出來的,他在推特中提到,如果2008年出現(xiàn)WebAssembly,那么他們都沒有必要去創(chuàng)建Docker了。WebAssembly之前跑在瀏覽器端比較多,現(xiàn)在的趨勢卻是跑在服務端。

WebAssembly和Docker相比具有哪些優(yōu)勢呢?WebAssembly的Cold Start會比Docker快100倍。其次前者執(zhí)行時間較后者也快10%-50%。另外WebAssembly 占用的空間更小。最后WebAssembly有更靈活的安全策略,可以根據(jù)不同模塊,在實例化時指定不同權限。

因為在邊緣節(jié)點資源會比較受限,所以WebAssembly綜合了輕量級、更優(yōu)的性能、更高的安全性和多語言的特點。多語言對于Serverless尤其重要,因為現(xiàn)在很多主流的開發(fā)語言都支持把程序編譯成WebAssembly,具有這樣的特點會有很多的好處。

綜合上述的方方面面,我們做了YoMo開源框架。

YoMo應用案例

03

再來分享幾個典型的案例。

我們在辦公室部署了一個實時噪聲傳感器,來測試YoMo框架是否能達到低時延。因為MQTT協(xié)議需要安裝MQTT Broker,所以我們在數(shù)據(jù)采集端做了一個MQTT兼容的API,這樣可以減少用戶的負擔,無需安裝 MQTT Broker 即可接入 YoMo。為了測試實驗,我們將Serverless的節(jié)點部署在寧夏的AWS,來測量北京到寧夏,再從寧夏返回北京的時延。

我們的測試結果顯示時延基本能穩(wěn)定在30ms以內。另外像屏幕上顯示的分貝值,傳統(tǒng)的做法是把傳感器數(shù)據(jù)先保存到數(shù)據(jù)庫,然后再進行查詢顯示,這樣就會造成時延的損失,所以YoMo采取通過WebSocket直接顯示到屏幕上。同時用另外一個 Serverless服務把數(shù)據(jù)落地到 DB。

白酒智能釀造平臺是一個工業(yè)級的應用。白酒行業(yè)的一大特點是很多釀酒工藝是通過老師傅的經驗傳授,這樣是非常主觀的。我們在和一個研究白酒幾十年的專業(yè)研究院——中國食品發(fā)酵工業(yè)研究院合作后,獲得了他們提供的硬件和相關的工業(yè)算法。接著我們對這些設備進行了實時的工藝采集和計算,把老師傅的經驗數(shù)字化,從而獲得穩(wěn)定的工藝,提高了出酒率和效率。

海外有一個用戶想做用戶行為的跟蹤,分析一些網(wǎng)站上用戶什么樣的行為會導致轉換率的降低等問題。針對這樣的場景,我們做了Geo-Distributed的分布式解決方案,將傳統(tǒng)的中心化架構拆分成多個靠近用戶的邊緣節(jié)點。

最后一個案例是分布式的爬蟲。我們服務了一個海外提供物流查詢的SaaS公司。之前這個公司的查詢都是通過 proxy去獲取,這樣會造成很高的時延,同時穩(wěn)定性也不高,更加嚴重的是數(shù)據(jù)隱私可能泄露。通過YoMo框架,我們在更靠近快遞公司的節(jié)點部署了一個爬蟲服務,通過QUIC協(xié)議,把請求通過長連接返回給美國的用戶。這些服務器都是部署在用戶自己的機器上,數(shù)據(jù)隱私得以保障,也節(jié)省了proxy代理的開支。

YoMo features

04

通過之前的講座,在座的嘉賓多少對QUIC協(xié)議有一定的了解,這些內容就快速通過。

QUIC優(yōu)點是非常多的。最好的就是最下面的兩點。一個是User space,我在開頭開放性那里也提到過User space,可以更方便的進行軟件升級。TCP內核態(tài)的升級就沒有那么方便。二是擁塞控制算法。根據(jù)不同的場景進行靈活的控制,具有更高的可編程性。

QUIC在業(yè)內的應用實踐音視頻方面比較多。國內很多的大廠在兩三年前就開始研究音視頻方面的應用。QUIC對性能的提升幫助很大,包括卡頓率等等。因為看好QUIC 的前景,加之工業(yè)領域應用很少,所以我們想推動QUIC在工業(yè)、IoT領域的運用。

這里視頻借用了阿里手機淘寶的視頻,左邊采用多通道的QUIC,右邊沒有采用。如果WiFi出現(xiàn)抖動的,左邊可以通過蜂窩網(wǎng)絡流暢運行,而右邊只用到 WiFi 就出現(xiàn)卡頓的情況。

自研的 Y3 Codec我們稱它為faster than real-time。如果是傳統(tǒng)的JSON的話,就需要拿到完整數(shù)據(jù)以后進行解碼。針對IoT,例如之前提到的噪聲,只要獲取噪聲分貝的字段即可。對此,我們使用了TLV的結構。結構里的Tag相當于 JSON的key。通過監(jiān)聽Tag是不是用戶關心的,如果是就直接獲取,不是則skip,再根據(jù)Length判斷需要skip多少字節(jié)。

性能測試中Y3 Codec相比JSON提升超10倍以上,與Protobuf相比也有明顯的提升。下表所展示的是一些性能報告。

響應式的編程用excel的應用來形象的說明。假設a=b+c,那么對b、c進行修改a也會有動態(tài)的響應,這種模式是十分適合數(shù)據(jù)隨著時間變化的場景。

ReactiveX也針對異步數(shù)據(jù)提供了一個良好的編程模型。ReactiveX最早是由微軟提出。在操作異步數(shù)據(jù)時可以使用一些通用的方法,就會像操作同步數(shù)據(jù)一樣方便,只要組合幾個常用的函數(shù)就可以操作異步數(shù)據(jù)流。

假設每30ms都會傳遞一次數(shù)據(jù),可實際場景可能是連續(xù)兩個30ms都沒有數(shù)據(jù),第三個30ms突然出現(xiàn)三個數(shù)據(jù)。針對這種場景我們實際只要獲取最新的數(shù)據(jù)即可。使用 Rx 可以簡化這個問題,使用 debounce 即可獲取每 30ms 內的最新一條數(shù)據(jù)。

Streaming Serverless讓用戶不需要操作QUIC Stream,只需要操作Rx Stream??梢愿鶕?jù)業(yè)務需求進行Operator方法的組合即可。另外市面上很多Serverless服務在本地調試比較麻煩,所以YoMo支持CLI的方式本地運行和調試。

邊緣計算

05

邊緣計算各位多多少少也有一定了解

整個行業(yè)的趨勢是從之前的大型機通過終端連接變成PC端去中心化場景。發(fā)展到移動互聯(lián)時代又回到了中心化的云計算中心。到IoT時代因為數(shù)據(jù)量的巨大,需要邊緣端進行分布式來緩解云計算中心的壓力。邊緣計算雖然越來越重要,但是邊緣計算并不會取代云計算,他們會共同存在。

邊緣計算的優(yōu)勢一是降低傳輸距離。二是就近計算更快的響應。第三,比較重要,邊緣計算可以保護安全隱私。很多工業(yè)企業(yè)并不是很愿意把數(shù)據(jù)傳輸?shù)焦性品丈?,所以隱私保護顯得格外重要。最后一點就是低成本。邊緣計算可以減少帶寬傳遞的成本。

云計算和邊緣計算的對比發(fā)現(xiàn),云計算的性能更強但時延、帶寬成本較高,邊緣計算恰恰相反。云計算和邊緣計算在使用上互補,以滿足不同場景的使用需求。

對此我們做了Geo-Distributed Edge Cloud。用戶可以根據(jù)時延需求來部署在不同的地方。低時延可以部署在城市級節(jié)點。如果有數(shù)據(jù)監(jiān)管要求則可以部署在私有云。另外部署在云計算中心也是可以實現(xiàn)的。

總結

06

最后對今天的匯報進行一個總結。

YoMo的項目背景是面向未來可編程的開放性。針對網(wǎng)絡傳輸提出gRPC for IoT——全鏈路采用QUIC以及Y3 Codec 高性能編解碼。另外為了加快用戶開發(fā)APP的速度,提出了Streaming Serverless的框架。針對YoMo的使用場景,運行在WebAssembly會比Docker更加具有優(yōu)勢。最后邊緣計算方面YoMo可以基于Geo-Distributed Cloud進行就近部署。

以上就是YoMo的開源計劃,希望對YoMo感興趣的朋友們可以多多關注。

謝謝大家!

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IDC
    IDC
    +關注

    關注

    4

    文章

    385

    瀏覽量

    37121
  • 云計算中心
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7307
  • 5G
    5G
    +關注

    關注

    1352

    文章

    48271

    瀏覽量

    562626
  • IOT
    IOT
    +關注

    關注

    186

    文章

    4142

    瀏覽量

    195736
  • 邊緣計算
    +關注

    關注

    22

    文章

    3025

    瀏覽量

    48331

原文標題:可編程的流式計算框架:YoMo

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    可編程晶振的優(yōu)點和缺點

    可編程晶振,近年來漸入人們眼中。什么是可編程晶振,與普通晶振有什么區(qū)別?可編程晶振的優(yōu)點和缺點有哪些?1,什么是可編程晶振可編程晶振是一種可
    的頭像 發(fā)表于 09-30 10:44 ?234次閱讀
    <b class='flag-5'>可編程</b>晶振的優(yōu)點和缺點

    用TMAG5328電阻器和電壓可編程霍爾效應開關實現(xiàn)可編程性和診斷

    電子發(fā)燒友網(wǎng)站提供《用TMAG5328電阻器和電壓可編程霍爾效應開關實現(xiàn)可編程性和診斷.pdf》資料免費下載
    發(fā)表于 09-11 10:01 ?0次下載
    用TMAG5328電阻器和電壓<b class='flag-5'>可編程</b>霍爾效應開關實現(xiàn)<b class='flag-5'>可編程</b>性和診斷

    可編程晶振都有什么頻率的呢?分享3個挑選可編程晶振的技巧

    頻率范圍全面覆蓋,滿足多樣化需求: ? CMOS可編程晶振:1~200MHz寬廣選擇,為您的基礎應用提供穩(wěn)定可靠的支持。 ? 可編程差分晶振:高達2100MHz的卓越性能,滿足高速數(shù)據(jù)傳輸與信號處理的高標準要求。 ? 可編程壓控
    的頭像 發(fā)表于 07-18 18:30 ?1024次閱讀
    <b class='flag-5'>可編程</b>晶振都有什么頻率的呢?分享3個挑選<b class='flag-5'>可編程</b>晶振的技巧

    可編程電源的作用是什么

    可編程電源的作用是什么 可編程電源是一種電子設備,它可以根據(jù)用戶的需求調整輸出電壓和電流。這種電源廣泛應用于各種電子設備和系統(tǒng)的測試、調試和研發(fā)過程中。 ### 可編程電源的作用 #### 1.
    的頭像 發(fā)表于 06-10 15:33 ?551次閱讀

    可編程電源使用方法

    可編程電源使用方法 可編程電源使用方法 摘要:本文詳細介紹了可編程電源的使用方法,包括其基本概念、主要功能、選擇原則、操作步驟、注意事項以及實際應用案例,旨在幫助讀者全面了解可編程電源
    的頭像 發(fā)表于 06-10 15:29 ?781次閱讀

    可編程電源如何編程

    可編程電源如何編程? 可編程電源是一種可以調節(jié)輸出電壓和電流的電源設備,廣泛應用于電子設備測試、研發(fā)和生產等領域。通過編程,用戶可以根據(jù)需要設置電源的輸出參數(shù),實現(xiàn)自動化測試和控制。本
    的頭像 發(fā)表于 06-10 15:24 ?1062次閱讀

    什么是現(xiàn)場可編程邏輯陣列?它有哪些特點和應用?

    在電子工程領域,現(xiàn)場可編程邏輯陣列(Field Programmable Logic Array,簡稱FPLA)是一種具有強大靈活性和可編程性的半導體器件。它屬于可編程邏輯器件(PLD)的一種,通過
    的頭像 發(fā)表于 05-23 16:25 ?695次閱讀

    可編程片上系統(tǒng)是什么意思

    可編程片上系統(tǒng)(Programmable System-on-Chip,PSoC)是一種特殊的嵌入式系統(tǒng)。它首先是一個片上系統(tǒng),這意味著整個系統(tǒng)的主要邏輯功能由單個芯片完成。其次,它具有可編程的特性,設計方式靈活,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)
    的頭像 發(fā)表于 03-28 15:09 ?483次閱讀

    現(xiàn)場可編程門陣列的原理和應用

    FPGA是一種可編程的硬件邏輯器件,其核心組成部分是可編程邏輯單元(PLU)和可編程互連資源(Interconnect Resources)。PLU是一組可編程的邏輯門,如與門、或門、
    的頭像 發(fā)表于 03-27 14:49 ?580次閱讀

    現(xiàn)場可編程門陣列是什么

    現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱FPGA)是一種超大規(guī)模可編程邏輯器件,由可編程邏輯資源、可編程互連資源和
    的頭像 發(fā)表于 03-16 16:38 ?2353次閱讀

    可編程邏輯器件的特征及優(yōu)勢科普

    可編程邏輯器件是一種集成電路,具有可編程功能的特性。它們可以根據(jù)用戶的需求進行編程,從而實現(xiàn)不同的邏輯功能。
    的頭像 發(fā)表于 02-26 18:24 ?1037次閱讀

    可編程控制器的組成 可編程控制器有哪些特點?

    可編程控制器(Programmable Logic Controller,PLC)是一種使用數(shù)字計算機技術和專用外設實現(xiàn)工業(yè)過程自動化控制的設備。它在工業(yè)生產中起到了非常重要的作用。本文將詳細介紹
    的頭像 發(fā)表于 01-18 11:18 ?1276次閱讀

    可編程器件的特點和發(fā)展歷程

    )和讀寫存儲器(ROM)。 可編程器件的特點主要包括以下幾個方面: 可編程性:可編程器件可以根據(jù)需求進行編程,改變其功能和行為。它們通常具有編程
    的頭像 發(fā)表于 12-21 17:19 ?774次閱讀

    簡單認識現(xiàn)場可編程門陣列

    現(xiàn)場可編程門陣列 (Field Programmable Gate Array, FPGA)也稱為現(xiàn)場可編程器件,是在 PROM ( Programmable Read Only Memory
    的頭像 發(fā)表于 12-01 09:25 ?752次閱讀

    數(shù)字可編程變頻電源使用有哪些注意事項?

    數(shù)字可編程變頻電源使用有哪些注意事項? 數(shù)字可編程變頻電源是一種能夠根據(jù)用戶需求調整輸出電壓和頻率的電源設備。它在工業(yè)生產和實驗室研究等領域中被廣泛使用。然而,使用數(shù)字可編程變頻電源時需要注意一些
    的頭像 發(fā)表于 11-13 16:09 ?683次閱讀