Go 與其他程式語言不同的在於認知負擔。您可以使用更少的程式碼完成更多工作,這讓您更容易理解和推理最後寫出的程式碼。
大部分的 Go 程式碼最後看起來都非常相似,因此,即使您使用的是全新的程式碼庫,您也能夠快速上手。
Go 改善微服務並加速生產力
美國運通創立於 1850 年,是一家全球整合支付公司,提供信用卡和簽帳金融卡產品、商家收單和處理服務、網路服務和旅遊相關服務。
美國運通的付款處理系統在悠久的歷史中不斷發展,並歷經多次架構演進而更新。在任何更新中,付款處理都必須快速,特別是在交易量非常大的情況下,並在所有系統中建構復原力,以符合安全性和法規標準。透過 Go,美國運通獲得其付款和獎勵網路所需的效能和可擴充性。
現代化美國運通系統
美國運通了解程式設計語言環境正在劇烈變化。該公司的現有系統專門建置為高並行性和低延遲,但知道這些系統將在不久的將來重新建置平台。付款平台團隊決定花時間找出哪些語言最適合美國運通不斷變化的需求。
美國運通的付款和獎勵平台團隊是最早開始評估 Go 的團隊之一。這些團隊專注於微服務、交易路由和負載平衡用例,並且需要現代化其架構。許多美國運通開發人員熟悉該語言的功能,並希望試用 Go 來執行其高並行性和低延遲應用程式(例如自訂交易負載平衡器)。基於這個目標,這些團隊開始遊說高階主管在美國運通付款平台上部署 Go。
美國運通副總裁兼首席工程師 Benjamin Cane 表示:「我們想找出最佳程式語言,用於撰寫快速且有效率的付款處理應用程式。」「為此,我們啟動了一場內部程式語言大賽,目標是找出最符合我們設計和效能需求的語言。」
比較語言
Cane 的團隊選擇使用四種不同的程式語言來建構微服務,以進行評估。然後他們比較這四種語言的速度/效能、工具、測試和開發容易度。
對於服務,他們決定使用 ISO8583 轉換為 JSON。ISO8583 是金融交易的國際標準,且在美國運通的付款網路中廣泛使用。對於程式語言,他們選擇比較 C++、Go、Java 和 Node.js。除了 Go 之外,這些語言在美國運通中都已使用。
從速度的角度來看,Go 以每秒 140,000 個請求的成績獲得第二好的效能。Go 證明了它在用於後端微服務時表現出色。
雖然 Go 可能不是測試中最快的語言,但其強大的工具有助於提升其整體結果。Go 內建的測試架構、分析功能和基準測試工具讓團隊印象深刻。Cane 表示:「在 Go 中撰寫有效的測試很容易。」「基準測試和分析功能讓調整我們的應用程式變得簡單。加上其快速的建置時間,Go 讓撰寫經過良好測試和最佳化的程式碼變得容易。」
最後,Go 被團隊選為建構高效能微服務的首選語言。工具、測試架構、效能和語言簡潔性都是關鍵因素。
Go for infrastructure
Cane 表示:「我們的許多服務都在 Kubernetes 內部雲端平台的 Docker 容器中執行。」Kubernetes 是以 Go 編寫的開源容器編排系統。它提供主機叢集來執行基於容器的工作負載,最著名的是 Docker 容器。Docker 也是以 Go 編寫的軟體產品,它使用作業系統層級的虛擬化來提供稱為容器的可攜式軟體執行環境。
美國運通也透過 Prometheus 來收集應用程式指標,Prometheus 是以 Go 編寫的開源監控和警示工具組。Prometheus 會收集和彙總即時事件和指標,以進行監控和警示。
Kubernetes、Docker 和 Prometheus 這三巨頭 Go 解決方案協助美國運通現代化其基礎架構。
使用 Go 提升效能
現今,美國運通有許多開發人員使用 Go 編寫程式,其中大部分都在設計用於高可用性和效能的平台上工作。
Cane 表示:「對於我們的舊有程式碼庫來說,工具一直是關鍵需求領域。」「我們發現 Go 有絕佳的工具,以及內建的測試、基準測試和剖析架構。撰寫高效能且有復原力的應用程式很簡單。」
「在使用 Go 之後,我們的大部分開發人員都不想再回到其他語言了。」
美國運通才剛開始看到 Go 的好處。例如,Go 從頭開始設計時就考量到並行性,使用輕量級的「goroutine」而非較重的作業系統執行緒,讓在同一個位址空間中建立數十萬個 goroutine 變得可行。使用 goroutine,美國運通已在即時交易處理中看到效能數字的提升。
Go 的垃圾回收機制在效能和開發簡便性方面,也大幅優於其他語言。「我們在 Go 中看到的垃圾回收結果,遠遠優於其他語言,而垃圾回收對於即時交易處理來說是一件大事。」Cane 表示。「在其他語言中調整垃圾回收機制可能非常複雜。使用 Go,您無需調整任何設定。」
如需深入了解,請閱讀 「美國運通選擇 Go」,其中更深入探討美國運通採用 Go 的過程。
讓您的企業開始使用 Go
美國運通使用 Go 來現代化其支付和獎勵網路,而其他數十家大型企業也採用了 Go。
全球有超過一百萬名開發人員使用 Go,橫跨銀行和商業、遊戲和媒體、科技和其他產業,在像 PayPal、Mercado Libre、Capital One、Dropbox、IBM、Mercado Libre、Monzo、紐約時報、Salesforce、Square、Target、Twitch、Uber 和 Google 等多元化的企業中。
如需深入了解 Go 如何協助您的企業建置可靠、可擴充的軟體,就像美國運通所做的那樣,請立即前往 go.dev。
關於美國運通
Go 為美國運通提供其支付和獎勵網路所需的效能和可擴充性。