專家視點(diǎn):數(shù)據(jù)無處不在的云原生路徑
使用 Kubernetes 進(jìn)行架構(gòu)是必不可少的核心部分,它使數(shù)據(jù)分析異常靈活,可在業(yè)務(wù)需要的任何地方運(yùn)行,并以高并發(fā)、高性能、效率和可用性大規(guī)模運(yùn)行。
從金融服務(wù)和保險(xiǎn)到制造和醫(yī)療保健等垂直領(lǐng)域的無數(shù)企業(yè)發(fā)現(xiàn),他們需要公共和私有云、混合和邊緣部署來最好地滿足他們的數(shù)據(jù)管理和分析需求。因此,分布式云的概念是云成熟的一部分也就不足為奇了。將數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖和高級(jí)分析引入分布式云架構(gòu)是市場(chǎng)的發(fā)展方向。擴(kuò)展此架構(gòu)以包含更高級(jí)別的數(shù)據(jù)管理和分析服務(wù)自然會(huì)產(chǎn)生分布式數(shù)據(jù)云的想法。
在分布式數(shù)據(jù)云中,企業(yè)數(shù)據(jù)倉(cāng)庫(kù)將不僅用于為公司中的數(shù)百名業(yè)務(wù)分析師或數(shù)據(jù)科學(xué)家提供分析,而且最終能夠?yàn)槠髽I(yè)端直接使用的實(shí)時(shí)分析應(yīng)用提供支持?jǐn)?shù)以萬計(jì)的客戶。這些數(shù)據(jù)將可以在任何地方立即訪問并產(chǎn)生洞察力。
終極目標(biāo)探索
云原生(Cloud-native)是一個(gè)被廣泛使用的術(shù)語(yǔ),但當(dāng)軟件架構(gòu)從頭開始設(shè)計(jì)以利用分布式云的優(yōu)勢(shì)時(shí),它具有真正的意義。一個(gè)完全實(shí)現(xiàn)的云原生數(shù)據(jù)倉(cāng)庫(kù)應(yīng)該在邏輯上利用分布式數(shù)據(jù)云架構(gòu)。從最廣泛的意義上講,這將分析帶到數(shù)據(jù)所在的任何位置,降低集中風(fēng)險(xiǎn),顯著提高效率,并為控制支出和競(jìng)爭(zhēng)優(yōu)勢(shì)帶來現(xiàn)代化。
更詳細(xì)地說,云原生數(shù)據(jù)管理和分析技術(shù)應(yīng)顯示五個(gè)關(guān)鍵特征,以與分布式數(shù)據(jù)云藍(lán)圖保持一致:
- 與平臺(tái)無關(guān)的運(yùn)行時(shí),允許在任何地方提供數(shù)據(jù)和分析。
- 隨時(shí)隨地的通用用戶體驗(yàn)。
- 任何部署目標(biāo)上的通用安全和治理功能。
- 任何地方的成本和技術(shù)效率,最大限度地減少資源并允許強(qiáng)大的成本管理 (FinOps) 和支出限制。
- 單個(gè)控制界面,將所有部署、公共云、本地和網(wǎng)絡(luò)邊緣捆綁在一起。
可在任何需要的地方部署,遵循此模式的完全實(shí)現(xiàn)的云原生數(shù)據(jù)倉(cāng)庫(kù)還將從最終用戶那里抽象出云、本地和網(wǎng)絡(luò)邊緣基礎(chǔ)設(shè)施的復(fù)雜性。關(guān)鍵是將他們從基礎(chǔ)設(shè)施細(xì)節(jié)中解放出來,讓他們專注于從分析和管理數(shù)據(jù)中產(chǎn)生價(jià)值,同時(shí)仍然賦予云的原生力量。
選擇正確的方法
那么,這個(gè)終極目標(biāo)是如何實(shí)現(xiàn)的呢?開源容器編排工具 Kubernetes 提供了最流行的云原生操作路徑。雖然 Unix 中對(duì)工作負(fù)載進(jìn)行分區(qū)的想法自 1970 年代就已經(jīng)存在,但僅在大約十年前,容器才被廣泛實(shí)施,以使應(yīng)用程序開發(fā)更容易、更便攜且資源使用效率更高。但事實(shí)證明,在龐大的微服務(wù)架構(gòu)中部署數(shù)百或數(shù)千個(gè)應(yīng)用程序非常棘手。雖然存在其他選擇,但 Google 的開源 Kubernetes 項(xiàng)目(現(xiàn)在由云原生計(jì)算基金會(huì)維護(hù))在解決微服務(wù)應(yīng)用編排方面聲名遠(yuǎn)揚(yáng)——使應(yīng)用能夠在通用基礎(chǔ)架構(gòu)上運(yùn)行,以標(biāo)準(zhǔn)方式進(jìn)行監(jiān)控和管理,并通過使用開放標(biāo)準(zhǔn)。
這對(duì)應(yīng)用來說很好。但是數(shù)據(jù)世界呢?云原生數(shù)據(jù)倉(cāng)庫(kù)需要相同的基礎(chǔ)容器編排,以提供跨公共和私有云、網(wǎng)絡(luò)邊緣、混合和完全分布式云的彈性和部署靈活性。
橫向擴(kuò)展 Web 應(yīng)用的云原生重新架構(gòu)是很常見的,但數(shù)據(jù)庫(kù)大多只是被“提升并轉(zhuǎn)移”到云原生世界中。將數(shù)據(jù)庫(kù)放入容器中允許它在現(xiàn)代基礎(chǔ)設(shè)施中運(yùn)行,但它并不能提供展示云所有好處的體驗(yàn)。該軟件在很大程度上不知道它是在容器環(huán)境中運(yùn)行的,并且管理彈性集群等操作必須使用 Operators 和破解 Helm 圖表從數(shù)據(jù)庫(kù)外部笨拙地處理。允許多個(gè)彈性按需計(jì)算集群共享對(duì)象存儲(chǔ)中相同的底層數(shù)據(jù)等功能通常不可用。尋求從基于云的彈性數(shù)據(jù)倉(cāng)庫(kù)獲得業(yè)務(wù)價(jià)值的用戶不想了解 Helm 圖表、pod、節(jié)點(diǎn)或配置文件。他們只想配置數(shù)據(jù)倉(cāng)庫(kù)、管理彈性集群并從數(shù)據(jù)中獲得洞察力。
答案是在 Kubernetes 上提供 SQL 接口來按需配置多個(gè)彈性集群,并向 DBA 和最終用戶隱藏 Kubernetes 的復(fù)雜性。
通過這種方式,可以分配不同的用戶在不同的計(jì)算集群上運(yùn)行工作負(fù)載,并且可以在運(yùn)行時(shí)通過 SQL 更改正在使用的計(jì)算集群,但需要獲得許可。集群可以配置為在空閑期后自動(dòng)掛起,并根據(jù)需要重新啟動(dòng)。例如,可以創(chuàng)建一個(gè)單獨(dú)的計(jì)算集群來在需要時(shí)運(yùn)行 ETL 流程,一個(gè)用于臨時(shí)商業(yè)智能 (BI) 和多個(gè)數(shù)據(jù)科學(xué)集群。計(jì)算集群可以在使用量大的時(shí)候在線擴(kuò)展,或者在安靜的時(shí)候關(guān)閉以節(jié)省資金。可以創(chuàng)建集群來運(yùn)行僅在這些時(shí)間段內(nèi)活動(dòng)的每日、每周或每月批量報(bào)告任務(wù)。
在該模型中,計(jì)算集群中節(jié)點(diǎn)的大小以及節(jié)點(diǎn)的數(shù)量都是可控的,并且可以在實(shí)例級(jí)別建立資源消耗限制以實(shí)現(xiàn)可預(yù)測(cè)性。同樣,可以建立一個(gè)低成本的副本系統(tǒng),從主數(shù)據(jù)倉(cāng)庫(kù)實(shí)例接收復(fù)制流量,然后在需要使用副本時(shí)按需擴(kuò)展。
這種彈性不僅通過與 Kubernetes 的深度集成來實(shí)現(xiàn),還通過使用 SQL 本身作為創(chuàng)建、掛起、恢復(fù)和管理集群的“用戶界面”而不是開發(fā)人員工具來實(shí)現(xiàn)。 Kubernetes 是所有集群狀態(tài)的權(quán)威信息來源。顯示集群狀態(tài)的系統(tǒng)視圖使用其 API 從 Kubernetes 獲取數(shù)據(jù)。當(dāng)輸入集群管理 SQL 語(yǔ)句時(shí),云原生數(shù)據(jù)倉(cāng)庫(kù)向 Kubernetes 伸出援手,改變實(shí)例所需的狀態(tài);然后 Kubernetes 實(shí)施必要的更改。如果集群中的某個(gè)節(jié)點(diǎn)變得不健康,Kubernetes 會(huì)帶一個(gè)替代品上線。
這代表了與 Kubernetes 的一種獨(dú)特的、由內(nèi)而外的關(guān)系:Kubernetes 不再是驅(qū)動(dòng)集群狀態(tài)的“用戶界面”,而是由 Kubernetes 管理的數(shù)據(jù)庫(kù)本身成為用戶界面。這種架構(gòu)創(chuàng)建了一種共生關(guān)系,可提供獨(dú)特的、完全實(shí)現(xiàn)的云體驗(yàn)。 Kubernetes 的強(qiáng)大功能和跨平臺(tái)靈活性可用于數(shù)據(jù)倉(cāng)庫(kù),完全通過 SQL 驅(qū)動(dòng)。
隨著更多數(shù)據(jù)的生成和更多用例的部署,企業(yè)很容易進(jìn)入惡性循環(huán),其生態(tài)系統(tǒng)在特定云中越來越根深蒂固。系統(tǒng)性風(fēng)險(xiǎn)可能出現(xiàn)在單一云中,這對(duì)金融服務(wù)和保險(xiǎn)等受到嚴(yán)格監(jiān)管的行業(yè)的關(guān)鍵 IT 基礎(chǔ)設(shè)施造成了過多的風(fēng)險(xiǎn)。使用 Kubernetes 進(jìn)行架構(gòu)并不是將完全實(shí)現(xiàn)的云原生數(shù)據(jù)倉(cāng)庫(kù)帶入生活的唯一核心概念。它不是唯一符合分布式數(shù)據(jù)云模式的架構(gòu)組件。但它是必不可少的核心部件,它使數(shù)據(jù)分析異常靈活,可在業(yè)務(wù)需要的任何地方運(yùn)行,并以高并發(fā)、高性能、效率和可用性大規(guī)模運(yùn)行。結(jié)果是,任何給定企業(yè)中的數(shù)千名用戶,跨越不同的業(yè)務(wù)線和地理區(qū)域,都可以做出極其快速的決策,并通過近乎實(shí)時(shí)的動(dòng)態(tài)分析產(chǎn)生價(jià)值。