挑战
该团队着手为部署在 AWS 上并使用流式处理、大数据决策和机器学习的 美国运通 应用构建一个配置平台。其中一个应用每天处理数百万笔交易;有些应用处理欺诈检测和信用决策等关键功能。关键考虑因素:弹性和速度,以及从基本 AMI 恢复集群的完整性。
解决方案
软件工程高级总监约翰·斯威夫特表示,决定运行 Kubernetes“对我们来说非常具有战略意义”。“我们将 Kubernetes 用作底层架构或操作系统。在产品开发中,我们对它有很大的偏好。”
影响
首席软件工程师基思·加瑟表示:“Kubernetes 是一个显著的生产力倍增器”,并补充说,如果不用 Kubernetes 运行该平台,那么“我们现在仅 AWS 成本就很容易达到现在的三倍、四倍。”上市时间也得到了改善:“现在,一个团队可以来找我们,我们可以让他们在两周内运行一个基本的决策应用,而以前需要一个季度,甚至更长时间。”部署量增加了几个数量级。此外,重新恢复/重建集群流程以前需要人工操作,需要花费一天的大部分时间,现在使用 Kubernetes 自动化和声明式配置,只需要几个小时就能完成。
作为美国排名前十的零售银行,美国运通拥有每天处理数百万笔交易的应用。大数据决策,例如欺诈检测、信用审批等等,是该银行业务的核心。为了支持为银行构建具有这些功能的应用的团队,由软件工程高级总监约翰·斯威夫特领导的云团队采用了 Kubernetes 作为其配置平台。“Kubernetes 及其整个生态系统对我们来说非常具有战略意义。”斯威夫特表示。“我们将 Kubernetes 用作底层架构或操作系统。在产品开发中,我们对它有很大的偏好。”
大约两年前,该团队开始了这段旅程,首先是使用 Docker。然后是 Kubernetes。“我们希望将流式服务作为快速决策工作负载的一个功能放入 Kubernetes 中,并能够与批处理一起执行。”首席软件工程师基思·加瑟表示。“一旦数据被流式传输和批处理,我们在 Flink 中就有很多工具集可用于决策。我们希望以一致的方式在同一个生态系统中提供这些工具,而不是拥有一个庞大的定制雪花生态系统,其中每个工具都需要自己的定制部署。Kubernetes 使我们能够将所有这些工具整合在一起,因此可以有效地管理处理大数据的开源社区,甚至是许可社区。”
在第一年,影响已经非常明显。“上市时间对我们来说非常重要。”加瑟表示。“尤其是在欺诈方面,你需要在应对市场威胁的方式上非常灵活,能够添加和推动新的规则,检测新的行为模式,检测账户和交易流中的异常情况。”使用 Kubernetes,“一个团队可以来找我们,我们可以让他们在两周内运行一个基本的决策应用,而以前需要一个季度,甚至更长时间。Kubernetes 是一个显著的生产力倍增器。”
团队现在拥有了在部署方面自主的工具,因此部署量增加了两个数量级。“而且这仅仅是七个专门资源的结果,不需要一个完整的团队坐在那里观察一切。”敏捷开发主管贾米尔·贾达拉表示。“这是一项巨大的成本节约。有了可扩展性、管理和协调,Kubernetes 真正赋予了我们力量,让我们比以前拥有更多的时间。”
Kubernetes 也为美国运通从基本 AMI 中重新恢复集群所需的周期节省了大量时间。为了最大限度地降低云应用的攻击漏洞,加瑟表示:“我们的所有集群都定期从头开始重建,使用新的新鲜实例和虚拟服务器映像,这些映像已经用最新且最强大的安全补丁进行了修补。”这个流程以前需要人工操作,需要花费一天的大部分时间和人员。现在只需要一个简单的 Kubernetes 任务就可以完成。
节省的范围包括资本支出和运营支出。“使用 Kubernetes 的门槛很低,因为它完全是开源的。”加瑟指出。“我们选择自行构建集群,我们非常喜欢能够立即采用社区中的最新成果,而无需等待下游公司进行操作的灵活性。我们可以节省与这些许可相关的资本支出。此外,由于我们能够淘汰特定领域的一些专有软件,我们也节省了资本支出。因此,这也会对我们的账目产生积极的影响。”(这些开源技术包括 Prometheus、Fluentd、gRPC、Istio、CNI 和 Envoy。)
加瑟表示,在运营支出方面,节省的金额也很高。“我们运行着数十项服务,拥有数十个 Pod,许多守护进程集,而且由于我们是数据驱动的,所以我们利用了 EBS 支持的卷声明来满足我们所有有状态服务的需要。如果我们不得不使用 Kubernetes 之外的所有这些东西,在底层云服务上,我很容易就能看到我们的成本是现在的三倍、四倍,这仅仅是纯 AWS 成本。这还没有算上部署和维护所有额外基础设施的人员。”
该团队相信,这些优势将继续成倍增长,而无需让接触到新技术的工程师面对陡峭的学习曲线。“随着我们在这个生态系统中加入更多的租户,我认为人们需要了解 Kubernetes 的必要性可能不会上升。事实上,我认为它会下降,这对我们来说是件好事。”加瑟表示。“因为这真正展示了这项技术的可扩展性。你开始收获利益,他们可以专注于为企业构建出色的决策所需的所有功能,例如欺诈决策、信用决策,而不必担心‘我的 AWS 服务器是否坏了?我的 Pod 是否没有运行?’”