雲端與霧端
雲端與物聯網的關係及雲端服務模型
- 雲端的重要性:物聯網的價值在於其產生的大量數據,這些數據需要聚合和共享的能力。
- 雲端提供了必要的基礎設施,使數十億個小型嵌入式系統(如感測器、攝影機、開關、信標和執行器)能夠以通用語言相互協作。
- 雲端是數據傳播的共同要素,能將原本「啞」的終端設備變得智慧化。
- 雲端的定義與特性:雲端是按需提供的計算服務基礎設施,擁有可動態擴展或縮減的資源池(計算、網路、儲存和相關軟體服務)。
- 它通常由大型資料中心構成,以付費模式向客戶提供服務,給予使用者一種單一雲端資源的假象,但實際上可能使用了地理上分散的資源,這帶來了位置獨立性的感覺。
- 雲端服務的資源具有彈性(可擴展),且服務按需提供,有助於實現快速部署,且較少受硬體環境影響。
- 歷史背景:據報導,雲端概念首次出現於20世紀90年代中期的康柏公司,當時技術未來主義者預測計算將轉移到網路上。
- 雲服務模型 (XaaS):雲服務供應商提供多種「一切即服務」(Everything as a Service, XaaS) 產品,這些服務使雲計算的價值不斷增長,並能抵消客戶在購買和維護資料中心設備方面的資本支出。
- 網路即服務 (NaaS):包括軟體定義網路(SDN)和軟體定義邊界(SDP)等服務。
- 它允許根據需求彈性地擴大或縮小網路資源,並快速購買和部署新的網路特性,形成虛擬網路以替代企業通訊基礎設施。
- 軟體即服務 (SaaS):是雲計算的基礎,供應商透過客戶端(如行動裝置、瘦客戶端)向終端使用者提供應用程式或服務。
- 使用者視SaaS層如同在他們客戶端上運行,這推動了公司業務在雲端的大幅增長,例如Google Apps、Salesforce和Microsoft Office 365。
- 平台即服務 (PaaS):雲端提供底層硬體和軟體功能。
- 終端使用者利用供應商的資料中心硬體、作業系統、中介軟體和各種框架來託管他們的私有應用程式或服務。
- PaaS的價值在於提供可擴展性和運營費用優勢,同時獲得供應商驗證過的中介軟體和作業系統,使得應用程式能更快地推向市場。
- 基礎設施即服務 (IaaS):這是雲服務的最初概念。
- 供應商在雲端建立可擴展的硬體服務,並提供軟體框架以構建客戶端的虛擬機。
- 這提供了最大的部署靈活性,但對客戶的要求也更高。
- 網路即服務 (NaaS):包括軟體定義網路(SDN)和軟體定義邊界(SDP)等服務。
公有雲、私有雲和混合雲
- 雲端環境中常見三種雲拓撲模型,它們都應具備動態擴展、快速開發和部署的能力,並提供本地化的體驗。
- 私有雲:基礎設施專為單一組織或公司提供,沒有向外共享資源的概念。
- 其主要原因包括安全性和保障性,以確保資訊僅限於客戶管理的系統。
- 私有雲可以是本地部署,也可以是第三方提供的專用機器。
- 公有雲:基礎設施彈性地為大量客戶和應用程式提供。
- 它是一個資源池,任何人在任何時間都可以使用其服務,提供了前所未有的可擴展性,例如Microsoft Azure或Amazon AWS。
- 混合雲:是私有雲和公有雲的結合,可以是多個公有雲的組合,也可以是公有雲與私有雲基礎設施的結合。常
- 用於處理敏感數據(在私有雲)的同時,利用公有雲的範圍和規模提供前端介面。
- 另一用例是「雲端爆發」,將公有雲作為應急資源,在私有雲容量不足時用於負載平衡。
OpenStack 雲架構
- OpenStack 是一個開源的 IaaS 框架,用於構建雲端平台。
- 它自2010年以來由OpenStack基金會管理,並獲得500多家公司的支持。
- 核心組件與通訊:OpenStack 包含計算(Nova)
- 負載平衡、儲存(Swift, Cinder)
- 網路(Neutron)
- 儀表板(Horizon)
- 安全與身份識別(Keystone)
- 數據分析
- 部署工具和監控器等所有主要雲系統組件
- 其內部所有通訊都透過進階訊息佇列協議(AMQP)的消息佇列完成,通常使用RabbitMQ或Qpid,實現鬆散耦合的遠端程序呼叫(RPC)方法。
- 主要服務組件:
- Keystone(身份和服務管理):OpenStack 的身份管理器服務,是進入雲端的入口點。
- 它維護用戶憑證和訪問權限的集中目錄,確保用戶環境的相互排斥和安全。
- Glance(鏡像服務):OpenStack 的虛擬機管理核心。
- 它提供RESTful服務,允許客戶開發VM模板、發現可用VM、克隆和移動VM等,並支援多種虛擬鏡像格式(如raw, vhd, vmdk等)。
- Nova(計算):OpenStack 計算資源管理服務的核心,負責識別和分配計算資源,控制系統管理程序和虛擬機。
- 它使用RESTful API簡化控制,並依靠排程器(Scheduler)確定任務執行位置,支援豐富的過濾器進行自訂分配。
- Swift(物件儲存):為OpenStack 資料中心提供冗餘儲存系統。
- 它允許透過添加新伺服器來擴展集群,並可儲存或快取用戶的虛擬機。
- Neutron(網路服務):OpenStack 的網路管理和VLAN服務。
- 它提供DNS
- DHCP
- 閘道
- VLAN管理
- L2連接
- SDN
- VPN
- NAT
- 入侵偵測系統
- 負載平衡
- 防火牆等服務
- Cinder(塊儲存):提供雲端所需的持久塊儲存服務,充當資料庫和動態增長檔案系統的儲存即服務。
- 它支援多種儲存供應商和接口,並提供創建/刪除儲存設備、備份/恢復、時間點快照等功能。
- Horizon(儀表板):OpenStack 的儀表板,提供客戶進入OpenStack 的單一視窗視圖,顯示各個組件的Web視圖。
- 它可擴展,允許第三方添加小部件或工具。
- Heat(編排,選讀):可啟動多個複合雲應用程式,並基於OpenStack 實例上的模板管理雲基礎設施,與計量監控集成可自動擴展系統以滿足負載需求。
- Ceilometer(計量監控,選讀):提供可選服務用於計量數據收集和資源使用量,將使用資訊轉換為客戶帳單,並提供評級和計費工具。
- Keystone(身份和服務管理):OpenStack 的身份管理器服務,是進入雲端的入口點。
物聯網雲架構的限制
- 雲服務供應商位於物聯網邊緣設備之外,負責廣域網路。物聯網架構的特殊性導致一些挑戰:
- IP協議不相容:藍牙低功耗(BLE)和Zigbee等PAN和WPAN設備通常不符合IP協議,而WAN(包括雲端)上的所有內容都是基於IP協議的。
- 邊緣閘道的作用是執行這種協定轉換。
- 延遲效應:事件的延遲和響應時間是關鍵限制。
- 越靠近感測器,越進入硬即時要求領域。
- 雲端組件在WAN上引入了額外的延遲,通常為數十毫秒甚至數百毫秒。
- 這種延遲的可變性可能導致硬即時控制系統或製造自動化失敗。
- 因此,架構師需要根據響應時間的要求來考慮將解決方案的各部分部署在何處。
- 選擇雲供應商時應考慮其資料中心部署模型,以規範全球部署的響應時間。
- IP協議不相容:藍牙低功耗(BLE)和Zigbee等PAN和WPAN設備通常不符合IP協議,而WAN(包括雲端)上的所有內容都是基於IP協議的。
霧計算
- 霧計算是雲計算在邊緣的演進和擴展。它是一種系統級的水平架構,將資源和服務(包括儲存、計算、網路功能)分散到網路結構中,節點可位於雲端和「事物」(感測器)之間的任何位置。
- 霧計算與Hadoop原理:霧計算借鑒了Hadoop和MapReduce的成功。
- MapReduce將計算功能應用於本地數據(map),重新分配數據以將相關數據並置到一個節點(shuffle),然後在所有節點之間並行處理(reduce)。
- 這減少了數據移動帶來的通訊開銷和瓶頸。
- 這與物聯網領域中大量數據以數據流形式即時生成的情況相符,霧計算是解決這種新型大數據問題的根本方法。
- 霧、邊緣、雲和薄霧計算比較:
- 邊緣計算:靠近數據生成位置的移動處理,邊緣設備可能是感測器或閘道器。
- 其存在是為了解決延遲和不必要的頻寬消耗問題,但它不主動參與雲基礎設施。
- 霧計算:是雲端的擴展,與其他霧節點和/或雲服務共享框架API和通訊標準。
- 霧節點可以分層存在,並實現負載平衡和控制數據流向。
- 薄霧計算:也稱「小雲計算」,通常在低成本和低功耗的微控制器或嵌入式電腦上為網路的最末端邊緣服務。
- 它們物理上盡可能靠近感測器,執行近源計算,並透過標準協議連接到霧節點。
- 邊緣計算:靠近數據生成位置的移動處理,邊緣設備可能是感測器或閘道器。
- OpenFog參考架構:OpenFog聯盟是一個非營利性行業組織,旨在為霧計算定義互操作標準。
- OpenFog參考架構是一個分層模型,從底部的邊緣感測器和執行器到頂部的應用服務。
- 分層與功能:其架構與典型的雲架構(如OpenStack)相似,但更類似於PaaS,提供完整的棧,通常與硬體無關。它包括:
- 應用服務程序:提供任務所需的透明列表和客製服務,包括:
- 連接器
- 數據分析包
- 使用者介面
- 核心服務
- 提倡將服務作為容器中的微服務部署在邊緣
- 應用程序支持:用於構建最終解決方案的基礎設施組件,包括:
- 應用程式管理
- 日誌工具
- 組件和服務註冊
- 運行時引擎/語言
- 應用程式伺服器
- 訊息總線
- 資料庫
- 分析框架
- 安全服務
- Web伺服器
- 節點管理和軟體背板:控制霧節點如何與其域中的其他節點通訊並管理節點升級、狀態和部署。
- 包含:
- 作業系統
- 驅動程式
- 韌體
- 通訊協定
- 檔案系統控制
- 虛擬化軟體
- 微服務容器化
- 包含:
- 硬體虛擬化:將硬體定義為虛擬化層,應用程式不應與特定硬體綁定,系統應在霧中實現負載平衡和資源動態增減。
- OpenFog節點安全:定義棧的硬體安全性部分,高級別霧節點應能監控低級別節點和東西向鄰居,職責包括:
- 加密
- 篡改
- 實體安全監控
- 封包檢查等
- 網路:硬體系統層的第一個組件,負責東西向和南北向通訊及物理路由。
- 與傳統雲網路不同,網路在物聯網部署中具有意義和地理特徵。
- 要求包括:
- 彈性
- 非IP感測器到IP協議轉換
- 故障轉移處理
- 綁定到各種通訊結構
- 加速器:OpenFog與其他雲架構的另一個區別是加速器服務的概念,例如GPGPU或FPGA,用於
- 成像
- 機器學習
- 電腦視覺
- 訊號處理
- 加密/解密等服務
- 計算:堆棧的計算部分類似於OpenStack的Nova層,主要功能包括:
- 任務執行
- 資源監控
- 配置
- 負載平衡
- 能力查詢
- 儲存:管理與霧儲存的低層接口,包括:
- RAM陣列
- 旋轉磁碟
- 快閃記憶體
- RAID
- 數據加密等
- 可能需要在邊緣進行硬即時分析
- 硬體平台基礎設施:霧節點的物理和機械結構,因霧設備常部署在惡劣偏遠地點,必須堅固耐用、有彈性且自主。考慮因素包括:
- 尺寸
- 功率
- 重量
- 冷卻系統
- 機械支撐
- 可維修性
- 抗物理攻擊
- 抽象協議:將物聯網系統的最低層元素(感測器)與霧節點、其他霧節點和雲的其他層綁定。
- 透過抽象化接口,軟體棧的上層可以透過標準化方法訪問不同的設備。
- 感測器、驅動器和控制系統:物聯網棧的最底端,負責與霧節點通訊,由霧節點提供、保護和管理。
- 應用服務程序:提供任務所需的透明列表和客製服務,包括:
- EdgeX:由Linux基金會(LF Edge)託管的開源專案,目標與OpenFog相似,旨在為物聯網邊緣計算構建開放平台。
- EdgeX強調元件互操作性和即插即用,使用雲原生概念如微服務。
- 其架構基於容器化部署和微服務分離,可根據需求靈活調整。
- Amazon Greengrass和Lambda:Amazon Greengrass是AWS的擴展,允許程式設計師將客戶端下載到霧、閘道或智能感測器設備。
- 其目的與其他霧框架相似,旨在減少延遲和響應時間、降低頻寬成本並為邊緣提供安全性。
- 它支援:
- 數據快取
- 與AWS雲端同步
- 本地安全
- 消息代理
- 數據過濾
- 命令和控制
- 數據匯總
- 離線操作
- 迭代學習
- 程式師在AWS IoT中設計雲平台,定義Lambda功能,然後將這些函數分配給邊緣設備。
- 霧拓撲:霧拓撲可以多種形式存在,架構師在設計時需考慮:
- 成本
- 處理負載
- 製造商接口
- 東西向傳輸等因素
- 模型決定因素:
- 數據量
- 可擴展性
- 節點專業化
- 容錯能力
- 南北向與東西向流量:
- 南北向指數據從網路一層移至父級或子級(如邊緣路由器到雲端)
- 東西向指數據移動到網路層次結構相同級別的對等節點
- 常見拓撲類型:
- 簡單霧拓撲:邊緣處理單元(閘道、瘦客戶端、路由器)放置在靠近感測器陣列的位置,用作WPAN網路或網狀網的閘道並與主機通訊。
- 霧到雲拓撲:霧節點聚合數據、保護邊緣並執行與雲通訊所需的處理,霧節點的服務和軟體層與雲框架共享關係。
- 單一主雲的多個霧節點:多個霧節點負責服務和邊緣處理,每個霧節點連接到一組感測器,並可在邊緣節點之間東西向通訊和傳輸數據。
- 擁有多個雲供應商的多個霧節點:擴展拓撲,允許從多個霧節點與多個雲供應商安全私密通訊,可部署多個父雲。
- 多層霧拓撲:霧節點堆疊分層,提供額外服務或抽象,例如距離感測器較近的節點提供硬即時服務,上層節點提供聚合儲存、機器學習或圖像識別所需的計算資源。