IoT時代的技術又遇到怎樣的不同與挑戰,簡單總結一下阿里雲IoT場景中咱們面臨的問題與挑戰。數據庫
萬物的互聯,鏈接的形態也在悄然的發生變化,從WIFI,3G/4G,BLE到NB-loT,LoRa,傳統的RS232,RS485, CAN BUS等等也登上新的舞臺,本來相互無關的網絡形態,交織在一塊兒,異構的網絡構建着統一通信。編程
面對着智能生活,智能工業,智能城市,智能園區,有的場景追求低功耗,有的場景追求低延遲,有的場景追求吞吐量,面對着不一樣的需求,單一的網絡形態以及網絡協議很難知足不一樣的場景需求。
舉例來講,在協議方面:緩存
具備輕巧的特性,簡潔優雅的PUB/SUB模型很是適合消息驅動的場景,短小精緻的特色同時對弱網環境以及資源受限環境的十分友好。安全
CoAP主要基於UDP,與HTTP類似的模型爲嵌入式資源受限的場景提供了REQ&RSP的能力,這種模型更適合多數開發者的習慣,這種模型更適合多數開發者的習慣。UDP面臨最大的就是下行尋址的問題,但在局域網本地通訊很是適用,同時在IPv6時代也會迎來一些新的思考。另外 COAP over TCP也是很是值得看好的。網絡
HTTP/2的多流特性,天生就是爲複雜場景而設計的,數據報與雙向流能力的支持,極大的擴展了應用場景,多流的特性也能夠爲其餘協議提供良好的封裝能力,可謂是有潛力的的全能通道,在大數據場景以及流數據場景駕輕就熟。架構
AMQP適合吞吐量極大的云云消息流轉場景,多信道支持,同時具有良好的開源生態,也是被普遍用於在構建云云,雲邊(邊緣端)場景。運維
還有大量傳統的協議,例如J1939, Modbus,OPC等等,不一樣的接入方式,不一樣的網絡鏈路,不一樣的鏈接協議,構建了史無前例的繁榮與複雜。
鏈接不止於此,也留給咱們更多的思考:編程語言
一個經典的IoT閉環應用不只僅涉及傳感器,芯片,模組,OS,主控程序,網絡以及鏈接協議等等,還有云平臺的數據建模與結構化,存儲,加工,分析到應用分佈式
鏈路長的挑戰在於一是不容易看到全貌,二是不容易把控各點。模塊化
鏈路長更大考驗的是分工,協做以及整合,這種分工不只僅是公司內的分工,更可能是合做夥伴的分工,行業的分工,生態的協做。
loT時代的全面來臨,正是各類技術積累的必然結果。
從技術視角,從單點看,每一個技術鏈路上的點也充滿着巨大的挑戰。例如
會持續降低,確保全鏈路的可靠性就值得深刻的思考與踐行
移動互聯網時代早期,你們必定對手機不一樣系統的適配的繁雜記憶猶新,在應用層,你可能會面臨奇奇怪怪的兼容問題,當你接觸到 native或者framework/層,有些適配的問題更是讓你疲意不堪
對於IoT,如今的終端不只僅是手機,還有冰箱,彩電,空調,汽車,水錶,吊車...,
面臨的不只僅是 Android,iOS,有 Linux,RAM, FreeRTOS,uCOS,Mbed,QNX等等,還有大量沒有OS的:)
你會面臨接入的終端可能TCP的協議棧存在各類bug,你可能會面臨永遠也沒法升級並且死循環在鏈接你的設備,你可能會面臨DNS永久被緩存的場景....
今天IM鏈接了人,達到了數十億的規模,但實際的在線長鏈接數會少不少,對於支持這樣的鏈接規模,已經很了不得,咱們的支付寶也同樣。
但不久後的IoT鏈接的是數百數千億設備,會是十億百億在線規模,這裏面面臨的挑戰更是巨大,這樣的規模也是IT工程史上史無前例的,充滿了未知。
例如網絡抖動,時鐘溢出,或者是一批設備的故障,都是巨大的共振,會對平臺以及基礎設施產生極大的衝擊,如何防禦以及快速的恢復?
海量鏈接不只僅關乎穩定,例如如何有效的就近接入,讓信息經過最短的路徑投遞,提高效率以及節省成本?
保障海量鏈接的穩定,安全,高性能,低成本,每個都是很大的話題。
移動互聯網時代今天大量的數據來源於C端場景,數據已經可謂是海量。對於常規以人爲核心的應用,日活比例也不會過高。
但物聯網設備的特徵與人仍是有還大差別,以典型的生活場景爲例,若是是1億設備,在線大於可能在3千萬,關鍵是這些設備還不時的會上報數據,對於平臺幾乎時時都在秒殺,產生着巨量的數據。
若是是10億設備呢,若是是100億設備呢?100億的設備並不遙遠。
如此大量的loT數據會迫切的引起對數據質量的思考,數據的信息密度的思考。怎樣治理數據質量?數據怎樣分級存儲?數據如何更高效的清洗與萃取?
在咱們都在討論大數據的時候,舉個有趣的例子。當你到IoT工業場景中,你會發現有不少都是個性化的設備,這些設備會產生很多數據,可是還算不上大數據,咱們大數據的分析平臺與技術在解決個體設備的數據分析時,就是殺雞用了牛刀,成本的問題又突顯出來。因此又可能引入小數據的從新思考。
還有,以聚合計算爲主體的分析引擎,在面對CEP( Complex Event Processing)場景的計算時,又每每不那麼有效。
面對IoT場景,數據分析,存儲需求都面臨了一些變革,其根源來自於場景的多樣型。
各類跡象都在代表將來去中心的趨勢。孫正義2017年在一次演講中說起,末來鞋子的一塊芯片的計算力會超越人腦,那真正是無處不在的計算。
當計算觸手可得的時候,就再也不須要用時間換計算力,隨時隨地計算,並且更加的自治。
這說的有點大,從小的角度來講,在不少特定的場景,例如工廠數字化採用雲端集中式會存在可靠(例如斷網風險,成本(例如帶寬成本),性能(例如須要更快響應),安全(例如不但願數據被擴散)的需求,這種場景最佳的方案就是邊緣計算。
但今天的邊緣計算不一樣與之前的本地或單機系統,是大網絡中的小網絡,是大協做中的小自治。
今天的邊緣計算的核心是雲端一體的協同,雲端提供了更強的控制力與計算力,邊緣端提供更實時的執行力。
在技術的架構上,雲與端也愈來愈趨於類似,因此,雲端的一體一是指工做的協同,另外一方面也是架構的趨同。
邊緣計算是雲計算能力的延展,會覆將來的技術格局,也會對互聯網的中間件帶來新的創新機遇。例如,若是把邊緣看做一個單元,那也會是無處不在的單元化。例如,將來也會出現異構網絡下的通信中間件等等。
那個時代,可能會從新定義分佈式!
咱們在說物理化數字世界,loT的核心使命是把物理世界投影到數字世界,創建物理世界與數字時間的雙向同步機制。如何在數字世界描述物理世界呢?這就是咱們物的建模,這種建模充滿着遐想。
經過對物理世界的數字化,咱們就能夠在數字世界從新認識物理世界,甚至能夠四維導航,或是展示如今,或是導航到歷史的截面,或是預測到模糊的將來。
若是建模的太通用,相似數據庫的ER( EntityRelationship)模型,或者編程語言的OO( Object Oriented)模型,彷彿又回到過去,建模太定製,又難以有足夠的表達力。
從OCF,OMA,W3C到咱們發起的ICA,都在制定相應的物模型,如何讓模型成爲落地標準,成爲構建數字世界的基石,成爲數字世界被此感知以及互操做的基礎,也是一件不容易的事情。
如何恰如其分的在數字世界去表達物聯世界,而後驅動數字世界,改變物理世界,帶給咱們無盡的想象以及變革的機會。
回到最現實的地方,IoT的PaaS會面臨各類應用場景,衍生出各類部署場景,例如公有云,專有云,混合雲,邊緣雲,網關等等,將來的百億鏈接必定不會只在數個集羣,面對如何繁多的環境,如何作到快速部署,便捷的運維,也是留給咱們要去克服的課題。
對於部署,
先看架構問題,平臺須要良好的伸縮性以及模塊化,例如須要有云原生應用的特性。
再看依賴問題,依賴的各類中間件就很難帶到各個環節中,咱們須要SAL( Service Abstract Layer),須要具備不挑環境的中間件,須要保持系統的最小依賴...
再看發佈問題,環境如何快速部署,如何確保及時更新,如何讓集羣快速複製?
再看運維問題,在異構的形態上構建統一的運維體系,還有衆多細節問題須要去解決。
引用 Thoughtworks 2018年技術雷達報告中對IoT的描述:物聯網(IoT)生態系統持續穩步發展,關鍵成功因素包括安全和成熟的工程實踐。
安全對於物聯網相當重要,也是不少業務初期容易忽略的。在過往的幾年,業內物聯網的安全事故也是層出不窮。物聯網賦予了設備以及業務更大的空間,一樣不若是不守護好安全這扇門,帯來的災難也是致命的,不只僅是財務損失,甚至涉及到人身安全。
舉些具體安全的例子:
物聯網的鏈路長,碎片化嚴重,合做方多,安全危害大,這些特色讓安全問題變得特別的突出。
保障安全也是一項體系化的工做,不只僅是技術層面的,還包括相關制度以及人員管理。
在技術層面,既有端的安全,網絡安全,也有云平臺的安全,除了系統自己的安全,也有業務層面的安全。相對其餘系統,物聯網有不少新的安全挑戰。例如終端的身份發放以及保存,固件的保護,異構網絡下傳輸安全,雙向鑑權,傳輸加密套件的精細化選擇問題,採集的信息脫敏處理等
總結一下loT平臺面臨的工程技術挑戰,也是咱們正遇到的,以及正在努力解決的。實現一個平臺的基本功能其實看似不難,可是真正保障高可用,高性能,高安全以及可伸縮性其突挑戰是巨大的。
本文做者:問途
本文爲阿里雲內容,未經容許不得轉載。