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