干貨︱一文讀懂戴爾科技流數(shù)據(jù)平臺
了解更多數(shù)字化轉型方案查看此鏈接:
https://www.dellemc-solution.com/home/index.html
不久前,戴爾科技集團
正式發(fā)布新一代流式數(shù)據(jù)平臺
Dell EMC Streaming Data Platform
(簡稱SDP)
相信很多讀者都很好奇
這個平臺能給我?guī)硎裁矗?/strong>
它是如何工作的?
優(yōu)勢特點在哪?
今天,小編邀請到了
戴爾科技集團軟件開發(fā)總監(jiān)滕昱
為您深入講解SDP的
What、Why和How
了解流數(shù)據(jù)平臺
看這篇文章就夠了!
作者
戴爾科技集團軟件開發(fā)總監(jiān) 滕昱
SDP是什么
SDP是一套基于軟件與參考硬件的彈性可伸縮平臺,用于注入、存儲和分析無界的流式數(shù)據(jù)。流式數(shù)據(jù)處理,有時又被稱作事件處理,可以動態(tài)地將流式數(shù)據(jù)以及分析工作分發(fā)到可用的處理設施上。
從用途上看,SDP允許在一個應用內同時處理實時數(shù)據(jù)和歷史數(shù)據(jù)。從結構上看,SDP結合了開源的流式數(shù)據(jù)存儲引擎Pravega和流式數(shù)據(jù)計算引擎Flink,以及戴爾易安信PowerEdge系列服務器,并且可以與非結構化存儲的代表產品ECS(Elastic Cloud Storage)和Isilon無縫對接。
SDP能做什么
SDP是一套強大的流式數(shù)據(jù)平臺
它提供了一系列流式數(shù)據(jù)相關的功能和特性
❶ 數(shù)據(jù)注入:原生支持所有類型的流式數(shù)據(jù)注入,包括無界字節(jié)流。
❷ 存儲:彈性的分層存儲提供快速的數(shù)據(jù)訪問和幾乎無限的數(shù)據(jù)存儲,包括對歷史數(shù)據(jù)的訪問。
❸ 分析:對流式數(shù)據(jù)的分析能力由內嵌的Flink計算引擎提供。
❹ 平臺管理:集成的管理功能提供數(shù)據(jù)安全、配置、訪問控制、資源管理、健康告警和網(wǎng)絡拓撲可視化。
❺ 運行時管理:基于Web的用戶界面允許使用者為應用分配流和其它資源,運行應用以及查看作業(yè)狀態(tài)。
❻ 應用開發(fā):開發(fā)環(huán)境提供對應用開發(fā)和組件升級的支持。
❼ 允許應用程序重定向輸出到第三方可視化和告警工具,例如Kibana。
SDP為什么重要
著名咨詢公司Gartner的最新分析報告顯示,目前的企業(yè)數(shù)據(jù)約有80%都是非結構化數(shù)據(jù)。
根據(jù)數(shù)據(jù)自身性質的不同,一般可以將非結構化數(shù)據(jù)分為三類:文件、對象和流。針對文件型的非結構化數(shù)據(jù),戴爾易安信擁有占據(jù)市場領先地位長達10年的存儲產品Isilon。針對對象型的非結構化數(shù)據(jù),也有新興的優(yōu)秀對象存儲產品ECS。然而,在流式數(shù)據(jù)領域卻遲遲沒有一款針對性的產品投入市場。
SDP的出現(xiàn)正好填補了在流式數(shù)據(jù)領域的空缺。
現(xiàn)代企業(yè)對成熟的流式數(shù)據(jù)處理解決方案提出了越來越多的的需求,例如:無界數(shù)據(jù)流的分析與存儲能力,歷史數(shù)據(jù)與實時數(shù)據(jù)的統(tǒng)一,自動擴展機制,高度的數(shù)據(jù)一致性與事務支持,統(tǒng)一的數(shù)據(jù)API,企業(yè)級平臺等等。一方面,傳統(tǒng)的批處理數(shù)據(jù)引擎已經(jīng)完全無法滿足現(xiàn)代企業(yè)對實時性的要求。另一方面,現(xiàn)有的流式數(shù)據(jù)系統(tǒng)大都基于消息模型,例如Kafka,Spark等。這些系統(tǒng)從本質上看,僅僅只是一些高速消息系統(tǒng),缺乏一致性、可靠性、持久化等存儲特性,因此很難適應當今物聯(lián)網(wǎng)趨勢下的各種復雜數(shù)據(jù)處理需求,例如:無人機的實時視頻流分析,制造業(yè)的缺陷探測,自主偵察監(jiān)視等等。業(yè)界迫切需要一款“真正意義上的字節(jié)流”解決方案。而SDP就是我們交出的答卷。
SDP的企業(yè)級特性
SDP的定位首先是一個企業(yè)級平臺,因此企業(yè)級的特性必不可少,例如:安全性、隔離性、可擴展性、可管理性、易用性等等。我們將從企業(yè)的視角出發(fā),逐一介紹SDP的這些特性。
為跨團隊的數(shù)據(jù)流提供企業(yè)級安全保障
圖1 SDP的應用隔離設置界面
SDP平臺基于K8s進行部署,除了具備基礎的K8s安全隔離特性外,還額外提供了一套擴展的數(shù)據(jù)隔離與保護機制。
簡單來說,每一個業(yè)務部門可以在SDP平臺上創(chuàng)建自己獨立的多個應用,而每一個部門之間的數(shù)據(jù)都是相互隔離的。SDP還引入了用戶角色機制,進一步細化每一個用戶的權限控制。圖1展示的是為應用設置隔離的界面。
為數(shù)據(jù)注入提供自動擴展機制
圖2 SDP平臺內部活動segment數(shù)量的可視化展示
自動擴展機制是SDP提供的另一個吸引人的企業(yè)級特性。
具體來說,當數(shù)據(jù)注入流量發(fā)生變化時,SDP能夠實時自動進行水平擴展/收縮,以便達到最佳性能和吞吐量。這個過程是自動進行的,無需人工干預。
這一特性使得企業(yè)內部的硬件資源時刻保持最佳利用率:既不閑置浪費也不過度占用。這對一向以成本敏感著稱的企業(yè)應用來說,一定是一個福音。
圖2用一個示例展示了SDP平臺內部處于活動狀態(tài)的Segment數(shù)量隨時間的變化過程。從圖中可以很清楚地觀察到,在某些時間點上發(fā)生了Segment的分裂動作(水平擴展,吞吐量上升),而在另一些時間點上則發(fā)生了Segment的合并動作(水平收縮,吞吐量下降)。
提供便捷的IT管理
圖3 SDP儀表板的局部界面
便捷高效的管理功能一向被認為是企業(yè)級應用所必備的特性,SDP也毫不例外地具備這一特性。
圖3展示的是SDP儀表板的一部分,包括當前系統(tǒng)的各種性能指標以及資源使用情況。根據(jù)當前的實時指標,系統(tǒng)管理員可以提前收到可能的異常預警。當發(fā)生系統(tǒng)故障時,也能夠幫助迅速定位故障位置。
提供簡化的開發(fā)流程
SDP對開發(fā)者非常友好。
在SDP平臺內運行的每一個應用都同時支持實時數(shù)據(jù)和歷史數(shù)據(jù)的訪問,并且有統(tǒng)一的API支持。這意味著開發(fā)者無需花費精力使用兩套系統(tǒng)或者學習兩套API規(guī)范。開發(fā)者僅需要編寫一套統(tǒng)一的代碼,就可以同時適用于實時數(shù)據(jù)和歷史數(shù)據(jù)。另一方面,內置的Flink計算引擎和相應的Flink API大大降低了開發(fā)者的入門門檻。
SDP的整體架構
圖4 SDP的整體架構示意圖
SDP的整體技術棧包括了平臺軟件本身以及一整套標準硬件,如圖4所示。SDP緊隨當前的業(yè)界標準,從設計之初就是一個運行在容器環(huán)境下的分布式應用程序,并依靠K8s進行編排。容器環(huán)境不僅能夠隔離不同項目,還能夠高效管理資源,以及進行認證服務。
SDP運行時環(huán)境毫無疑問地是基于一套被稱作“戴爾科技標準參考架構”的組合配置,即:戴爾易安信的裸硬件,VMware的虛擬化支持,再加上Pivotal擴展的K8s環(huán)境(Pivotal Container Service,PKS)。
SDP平臺的最基礎的組件是它的流式數(shù)據(jù)存儲引擎,即:Pravega。作為平臺內的自研開源組件,Pravega承擔著為所有其它組件提供流式數(shù)據(jù)存取服務的重任。因為在流原生的環(huán)境下,數(shù)據(jù)只有唯一的表現(xiàn)形式:流。
▲Pravega是戴爾科技集團從零開始構建的存儲系統(tǒng)
取梵語中“Good Speed”之意為了對海量流式歷史數(shù)據(jù)提供容量擴展,Pravega需要連接二級持久化存儲設備,ECS和Isilon都是推薦的選擇。同時,為了達到實時數(shù)據(jù)處理所要求的低延遲,Pravega還擁有自己的基于固態(tài)存儲的一級持久化存儲支持,目的在于進一步降低寫入延遲。
作為SDP平臺的上層建筑,對外提供數(shù)據(jù)分析和處理能力是流式處理引擎的主要職責。通過不同的Connector組件,SDP可以借助Flink等各種現(xiàn)有的流式計算引擎完成數(shù)據(jù)的分析與處理,以便將單獨的數(shù)據(jù)流組合成更加靈活的流水線,完成更加復雜的操作。用戶甚至可以開發(fā)自己的Connector組件,以便連接其它存儲與計算引擎。
SDP與Flink
緊密結合
低延時的實時處理能力可以讓企業(yè)用戶從已有的數(shù)據(jù)集中產生新的商業(yè)模式,帶來新的經(jīng)濟效益,而對歷史數(shù)據(jù)的支持又是某些應用不可或缺的一部分。Pravega和Flink結合各自在實時數(shù)據(jù)、歷史數(shù)據(jù)上存儲和計算的優(yōu)勢,不僅保障極高存儲效率的同時還能夠進一步降低企業(yè)在數(shù)據(jù)存儲和運維的成本。
統(tǒng)一數(shù)據(jù)處理是一個充滿挑戰(zhàn)的領域,通過Pravega與Flink相結合的企業(yè)級解決方案,可以徹底簡化現(xiàn)有數(shù)據(jù)分析架構的復雜性,以及數(shù)據(jù)冗余、缺少可靠持久等問題,最終實現(xiàn)一個真正意義上的端到端的流/批統(tǒng)一數(shù)據(jù)處理框架。
SDP在K8s上構建,采用微服務架構,通過統(tǒng)一的K8s Operator方式部署Pravega與Flink,集合了存儲和計算平臺,并且實現(xiàn)安全、多租戶等諸多特性,為企業(yè)用戶提供了一體化的數(shù)據(jù)存儲和分析平臺。
核心功能覆蓋
SDP的1.0版本涵蓋了Flink的核心功能:
- 在K8s上部署Flink Session Cluster
- 支持多版本的Flink(1.7.2、1.8.1和1.9.1)
- 可配置的Flink集群資源控制
- Flink集群的擴容/縮容
- 支持用戶上傳、管理和運行Flink任務Jar包
- 支持從加密的Pravega客戶端通過Flink Connector讀寫數(shù)據(jù)
- Flink UI的安全訪問控制以及K8s外部訪問
- 端到端的恰好一次(Exactly-Once)語義
- 基于事件時間(Event Time)的語義
為什么選擇Flink
Pravega作為戴爾易安信研發(fā)的開源流存儲平臺,專注于流式數(shù)據(jù)存儲的可靠性和實時性,同時提供批流一體的Stream API。
這一設計思路與Flink作為處理引擎的理念不謀而合。
Flink擅長實時數(shù)據(jù)處理,如今Flink社區(qū)也同樣致力于整合DataStream API,統(tǒng)一批和流的處理。Flink因此自然成為了Pravega最為合適的計算引擎。兩者也自從Pravega誕生以來就有著深入的合作,Pravega團隊也多次參加了Flink Forward大會,并進行了主題演講和專場報告,分享Pravega與Flink的最新成果。這樣深度的技術合作也是SDP選擇Flink進行合作的主要原因之一。SDP希望結合并且發(fā)揮兩者的優(yōu)勢特點,幫助用戶解決實際問題。
▲戴爾科技集團軟件開發(fā)總監(jiān)滕昱參加2019 FFA大會
SDP作為企業(yè)級的數(shù)據(jù)存儲和計算一體化平臺,為用戶提供了安全可擴展的平臺,助力企業(yè)創(chuàng)新獲取新的價值。Flink為開發(fā)者提供了標準化的、豐富易用的Flink API,簡化了開發(fā)人員的工作,為包括零售、農業(yè)、汽車、能源行業(yè)等行業(yè)的數(shù)字化、智能化轉型提供了大量機遇。Flink中文社區(qū)的蓬勃發(fā)展也為中國的用戶們提供了豐富的應用場景的示例和第一手的開發(fā)資料。
與此同時,F(xiàn)link社區(qū)近期在不斷加強與K8s容器編排系統(tǒng)的整合,SDP也在此基礎上,通過構建基于K8s的架構進一步減少軟件系統(tǒng)和平臺管理的難度,最大程度地降低了對DevOps的門檻。
相關內容推薦:Dell EMC流數(shù)據(jù)平臺的技術構建
相關產品:戴爾PowerEdge R740