挑戰
該團隊著手為部署在 AWS 上、使用串流、大數據決策和機器學習的 Capital One 應用程式建置佈建平台。其中一個應用程式每天處理數百萬筆交易;有些應用程式處理關鍵功能,例如詐欺偵測和信用決策。主要考量因素:彈性和速度,以及從基礎 AMI 完全重新啟動叢集。
解決方案
軟體工程資深總監 John Swift 表示:「對我們而言,執行 Kubernetes 的決策『非常具有策略意義』。」「如果您願意,我們將 Kubernetes 用作底層或作業系統。我們的產品開發與其有一定程度的關聯性。」
影響
首席軟體工程師 Keith Gasser 表示:「Kubernetes 是顯著的生產力倍增器。」他並補充說,若沒有 Kubernetes 來運行平台,「我們的成本很容易就會增加三倍、四倍,達到目前純 AWS 支出的程度。」上市時間也獲得改善:「現在,團隊可以來找我們,我們可以在兩週內讓他們的基本決策應用程式啟動並運行,這在以前需要整整一個季度,甚至更長的時間。」部署次數增加了好幾個數量級。此外,重新啟動/叢集重建流程過去需要人工花費一天的很大一部分時間,現在透過 Kubernetes 自動化和宣告式配置,只需幾個小時即可完成。
作為美國排名前 10 的零售銀行,Capital One 擁有每天處理數百萬筆交易的應用程式。大數據決策——用於詐欺偵測、信用批准及其他——是業務的核心。為了支援為銀行建置具有這些功能的應用程式的團隊,由軟體工程資深總監 John Swift 領導的雲端團隊在其佈建平台中採用了 Kubernetes。Swift 表示:「Kubernetes 及其整個生態系統對我們而言非常具有策略意義。」「如果您願意,我們將 Kubernetes 用作底層或作業系統。我們的產品開發與其有一定程度的關聯性。」
大約兩年前,該團隊首先透過使用 Docker 開始了這段旅程。然後是 Kubernetes。首席軟體工程師 Keith Gasser 表示:「我們希望將串流服務放入 Kubernetes 中,作為快速決策工作負載的一項功能,並能夠同時進行批次處理。」「一旦資料經過串流和批次處理,Flink 中有許多工具集供我們用於決策。」「我們希望以一致的方式在同一個生態系統中提供工具,而不是擁有一個大型的客製化雪花生態系統,其中每個工具都需要自己的客製化部署。」「Kubernetes 讓我們能夠將所有這些工具整合在一起,因此可以整合開源甚至處理大數據的授權社群的豐富性。」
在第一年,影響已經非常顯著。Gasser 表示:「上市時間對我們來說真的非常重要。」「尤其是在詐欺方面,您必須非常靈活地應對市場上的威脅——能夠新增和推送新規則、偵測新的行為模式、偵測帳戶和交易流程中的異常情況。」透過 Kubernetes,「團隊可以來找我們,我們可以在兩週內讓他們的基本決策應用程式啟動並運行,這在以前需要整整一個季度,甚至更長的時間。Kubernetes 是多方面的生產力倍增器。」
現在團隊擁有工具可以在部署中實現自主,因此,部署次數增加了兩個數量級。Scrum Master Jamil Jadallah 表示:「而且這僅僅是透過七個專門的資源實現的,無需整個團隊坐在那裡監控一切。」「這是一個巨大的成本節省。憑藉可擴展性、管理和協調,Kubernetes 確實賦予我們力量,並為我們節省了比以前更多的時間。」
Kubernetes 也為 Capital One 定期從基礎 AMI「重新啟動」叢集節省了大量時間。為了盡可能降低雲端應用程式的攻擊漏洞風險,Gasser 表示:「我們的整個叢集會定期從頭開始重建,使用新的全新執行個體和虛擬伺服器映像,並修補最新的安全性修補程式。」這個過程過去需要花費幾乎一天的時間和人力來手動完成。現在這只是 Kubernetes 的一個快速工作。
節省也擴展到資本支出和營運支出。Gasser 指出:「使用 Kubernetes 的門檻很低,因為它完全是開源的。」「我們在建置叢集時採用了 DIY 路線,而且我們非常喜歡能夠立即採用社群的最新成果的彈性,而無需等待下游公司來完成。」「與這些授權相關的資本支出是我們不必支付的。此外,我們還可以從我們在特定領域中逐步淘汰的一些專有軟體中獲得資本支出節省。」「因此,這也以積極的方式記入我們的帳戶。」(其中一些開源技術包括 Prometheus、Fluentd、gRPC、Istio、CNI 和 Envoy。)
Gasser 說,在營運支出方面,節省的成本也很高。「我們運行數十種服務、數十個 Pod、許多 Daemon 集合,而且由於我們是以資料驅動為導向,因此我們針對所有具狀態服務利用 EBS 支援的磁碟區宣告。」「如果我們不得不在沒有 Kubernetes 的情況下,在底層雲端服務上完成所有這些工作,我很容易看到我們的成本會增加三倍、四倍,達到目前純 AWS 支出的程度。這還不包括部署和維護所有額外基礎架構的人力成本。」
團隊確信,效益將持續倍增——而且對於接觸新技術的工程師來說,學習曲線不會太陡峭。Gasser 表示:「隨著我們在這個生態系統中新增更多租戶,我認為人們理解 Kubernetes 的需求不一定會增加。事實上,我認為它會下降,這很好。」「因為這確實證明了技術的可擴展性。您開始收穫效益,他們可以專注於他們需要為業務中的出色決策(詐欺決策、信用決策)建置的所有功能,而不必擔心『我的 AWS 伺服器壞了嗎?我的 Pod 沒有運行嗎?』」