美国运通使用 Go 进行支付和奖励

美国运通
Quotation mark.

Go 与其他编程语言的不同之处在于认知负载。你可以用更少的代码做更多的事情,这使得你更容易推理和理解你最终编写的代码.

大多数 Go 代码最终看起来非常相似,因此,即使您正在使用全新的代码库,您也可以很快启动并运行.

— Glen Balliet忠诚度平台工程总监  at 美国运通

Go 改进微服务并提高生产力

美国运通成立于 1850 年,是一家全球综合支付公司,提供收费和信用卡产品、商户收购和处理服务、网络服务以及旅行相关服务.

美国运通的支付处理系统在其悠久的历史中得到发展,并在多个架构演变中进行了更新。在任何更新中,最重要的是支付处理需要快速,尤其是在交易量非常大的情况下,跨系统构建的弹性必须全部符合安全和监管标准。借助 Go,美国运通获得了其支付和奖励网络所需的速度和可扩展性.

美国运通系统现代化

美国运通了解编程语言格局正在发生巨大变化。该公司现有的系统专为高并发和低延迟而构建,但知道这些系统将在不久的将来重新平台化。支付平台团队决定花时间确定哪些语言最适合美国运通不断变化的需求.

美国运通的支付和奖励平台团队是最先开始评估 Go 的团队之一。这些团队专注于微服务、事务路由和负载平衡用例,他们需要对其架构进行现代化改造。许多美国运通开发人员熟悉该语言的功能,并希望为他们的高并发和低延迟应用程序(例如自定义事务负载平衡器)试用 Go。考虑到这一目标,团队开始游说高层领导在美国运通支付平台上部署 Go.

美国运通副总裁兼首席工程师 Benjamin Cane 说:“我们希望找到一种最佳语言来编写快速高效的支付处理应用程序。” “为此,我们开始了内部编程语言对决,目的是看看哪种语言最适合我们的设计和性能需求。”

比较语言

为了评估,Cane 的团队选择使用四种不同的编程语言构建微服务。然后,他们比较了四种语言的速度/性能、工具、测试和易于开发性.

对于该服务,他们决定使用 ISO8583 到 JSON 转换器。ISO8583 是金融交易的国际标准,通常在美国运通的支付网络中使用。对于编程语言,他们选择比较 C++、Go、Java 和 Node.js。除 Go 外,所有这些语言都已在美国运通公司中使用.

从速度的角度来看,Go 以每秒 140,000 个请求的速度实现了第二好的性能。Go 表明它在用于后端微服务时表现出色.

虽然 Go 可能不是测试过的最快的语言,但其强大的工具有助于提高其整体结果。Go 的内置测试框架、分析功能和基准测试工具给团队留下了深刻的印象。“用 Go 编写有效的测试很容易,”Cane 说。“基准测试和分析功能使调整我们的应用程序变得简单。再加上其快速的构建时间,Go 可以轻松编写经过良好测试和优化的代码。”

最终,Go 被团队选为构建高性能微服务的首选语言。工具、测试框架、性能和语言简单性都是关键因素.

Go 基础设施

“我们的许多服务都在基于 Kubernetes 的内部云平台内的 Docker 容器中运行”,Cane 说。Kubernetes 是一个用 Go 编写的开源容器编排系统。它提供主机集群来运行基于容器的工作负载,尤其是 Docker 容器。Docker 是一种软件产品,也是用 Go 编写的,它使用操作系统级虚拟化来提供称为容器的可移植软件运行时.

美国运通还通过 Prometheus 收集应用程序指标,Prometheus 是一个用 Go 编写的开源监控和警报工具包。Prometheus 收集和聚合实时事件和指标以进行监控和警报.

Go 解决方案的三巨头——Kubernetes、Docker 和 Prometheus——帮助实现了美国运通基础设施的现代化.

使用 Go 提高性能

今天,许多开发人员在美国运通使用 Go 进行编程,其中大多数开发人员在专为高可用性和性能而设计的平台上工作.

“工具一直是我们遗留代码库的关键需求领域,”Cane 说。“我们发现 Go 拥有出色的工具,以及内置的测试、基准测试和分析框架。编写高效且有弹性的应用程序很容易。”

“在使用 Go 之后,我们的大多数开发人员都不想回到其他语言.”

— Benjamin Cane副总裁兼首席工程师  at 美国运通

美国运通才刚刚开始看到 Go 的好处。例如,Go 的设计从一开始就考虑到了并发性——使用轻量级的“goroutines”而不是更重的操作系统线程——使得在同一地址空间中创建数十万个 goroutines 变得可行。使用 goroutines,美国运通在其实时事务处理方面的性能数字有所提高.

Go 的垃圾收集也是对其他语言的重大改进,无论是在性能还是在易于开发方面。“我们在 Go 中看到垃圾收集的结果比在其他语言中好得多,实时事务处理的垃圾收集很重要。” Cane说。“在其他语言中调整垃圾收集可能非常复杂。使用 Go,您无需调整任何内容。”

要了解更多信息,请阅读“在美国运通选择Go”,其中更深入地了解美国运通对 Go 的采用.

让您的企业开始使用 Go

正如美国运通正在使用 Go 对其支付和奖励网络进行现代化改造一样,其他数十家大型企业也在采用 Go.

全球有超过 100 万的开发人员在使用 Go——跨越银行和商业、游戏和媒体、技术和其他行业,在PayPalMercado Libre、Capital One、Dropbox、IBM、Mercado Libre、Monzo、纽约时报等众多企业中、Salesforce、Square、Target、Twitch、Uber,当然还有 Google.

要详细了解 Go 如何帮助您的企业像在美国运通一样构建可靠、可扩展的软件,请立即访问go.dev .

美国运通 美国运通

About 美国运通

Go 为美国运通提供支付和奖励网络所需的速度和可扩展性.