公司 Capital One 地点 弗吉尼亚州麦克莱恩 行业 零售银行

挑战

该团队着手为部署在 AWS 上的 Capital One 应用程序构建一个配置平台,这些应用程序使用流式传输、大数据决策和机器学习。其中一个应用程序每天处理数百万笔交易;有些处理关键功能,如欺诈检测和信用决策。关键考虑因素:弹性和速度,以及从基本 AMI 完全恢复集群。

解决方案

软件工程高级总监 John Swift 表示,决定运行 Kubernetes“对我们来说具有非常重要的战略意义”。“我们将 Kubernetes 用作基板或操作系统(如果您愿意这样称呼它)。在我们的产品开发中,它具有一定程度的亲和力。”

影响

首席软件工程师 Keith Gasser 表示:“Kubernetes 是一个重要的生产力倍增器”,并补充说,如果没有 Kubernetes 来运行该平台,“我们的成本很容易就会增加三倍,是现在 AWS 纯粹支出的四倍。”上市时间也得到了改善:“现在,一个团队可以来找我们,我们可以在两周内让他们启动并运行一个基本的决策应用程序,而以前这至少需要一个季度,甚至更长时间。”部署增加了几个数量级。此外,以前手动执行需要花费大半天时间的恢复/集群重建过程,现在借助 Kubernetes 自动化和声明式配置只需几个小时即可完成。

作为美国十大零售银行之一,Capital One 拥有每天处理数百万笔交易的应用程序。大数据决策(用于欺诈检测、信用审批等)是其业务的核心。为了支持为银行构建具有这些功能的应用程序的团队,由软件工程高级总监 John Swift 领导的云团队在其配置平台中采用了 Kubernetes。“Kubernetes 及其整个生态系统对我们来说具有非常重要的战略意义,”Swift 说道。“我们将 Kubernetes 用作基板或操作系统(如果您愿意这样称呼它)。在我们的产品开发中,它具有一定程度的亲和力。”

大约两年前,该团队首先使用 Docker 开始了这段旅程。然后是 Kubernetes。“我们希望将流服务作为快速决策工作负载的一项功能放入 Kubernetes 中,并能够同时进行批处理,”首席软件工程师 Keith Gasser 说道。“一旦数据被流式传输和批处理,Flink 中就有很多工具集可供我们用于决策。我们希望以一致的方式在同一个生态系统中提供这些工具,而不是拥有一个大型的自定义雪花生态系统,其中每个工具都需要自己的自定义部署。Kubernetes 使我们能够将所有这些工具整合在一起,从而可以将开源的丰富性,甚至是处理大数据的许可社区,都集中在一起。”

在第一年,影响就已经很大了。“上市时间对我们来说真的很重要,”Gasser 说道。“尤其是在欺诈方面,您必须非常灵活地应对市场中的威胁,能够添加和推送新规则,检测新的行为模式,检测账户和交易流中的异常。”借助 Kubernetes,“一个团队可以来找我们,我们可以在两周内让他们启动并运行一个基本的决策应用程序,而以前这至少需要一个季度,甚至更长时间。Kubernetes 是一个多方面的生产力倍增器。”

团队现在拥有了在其部署中实现自主的工具,因此,部署增加了两个数量级。“而且这仅仅是七个专用资源的结果,不需要整个团队坐在那里观察一切,”Scrum Master Jamil Jadallah 说道。“这节省了大量的成本。凭借其可扩展性、管理和协调能力,Kubernetes 真正赋能我们,让我们比以前拥有更多的时间。”

Kubernetes 还为 Capital One 从基本 AMI 进行所需的定期“恢复”集群节省了大量时间。为了最大限度地降低云中应用程序的攻击漏洞风险,“我们的整个集群会定期从头开始重建,使用新的实例和虚拟服务器映像,这些实例和映像都打上了最新最好的安全补丁,”Gasser 说道。这个过程以前需要花费大半天的时间,还需要人员手动完成。现在,它只是一个快速的 Kubernetes 作业。

节省的成本包括资本支出和运营支出。“进入 Kubernetes 的成本很低,因为它都是开源的,”Gasser 指出。“我们选择了 DIY 路线来构建我们的集群,我们绝对喜欢能够立即采用社区最新成果的灵活性,而无需等待下游公司来做这件事。与这些许可证相关的资本支出是我们不必支付的。此外,在我们特定的领域,我们还可以淘汰一些专有软件,从而节省资本支出。所以这对我们的账本来说也是一件好事。”(其中一些开源技术包括 Prometheus、Fluentd、gRPC、Istio、CNI 和 Envoy。)

Gasser 表示,在运营支出方面,节省的成本也很高。“我们运行着数十项服务,拥有大量的 Pod,许多守护程序集,而且由于我们是数据驱动的,我们利用 EBS 支持的卷声明来处理我们所有的有状态服务。如果我们必须在没有 Kubernetes 的情况下,在底层云服务上完成所有这些工作,我可以很容易地看到我们的成本会增加三倍,是现在 AWS 纯粹支出的四倍。这还没有考虑到部署和维护所有额外基础设施所需的人员。”

该团队相信,收益将继续成倍增长,而接触这项新技术的工程师无需经历陡峭的学习曲线。“随着我们在这个生态系统中加入更多的租户,我认为人们了解 Kubernetes 的需求可能不一定增加。事实上,我认为它会减少,这是一件好事,”Gasser 说道。“因为这真正体现了这项技术的可扩展性。您开始获得收益,他们可以专注于为业务中的重大决策(欺诈决策、信用决策)构建所需的所有功能,而不必担心‘我的 AWS 服务器坏了吗?我的 Pod 没有运行吗?’”