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