由於我們的 NoSQL 和 DB 代理在多執行緒模式中使用了相當多的系統詳細資料,因此管理不同條件的程式碼變得複雜,由於 Go 提供了通道和常式來處理複雜性,因此我們能夠建構程式碼以符合我們的需求。
建立在 Go 上的新程式碼基礎架構
PayPal 的成立宗旨是民主化金融服務,並賦予個人和企業加入全球經濟並在其中蓬勃發展的能力。PayPal 的付款平台是這項努力的核心,它結合了專有技術和第三方技術,以有效且安全的方式促進全球數百萬商家和消費者之間的交易。隨著付款平台規模越來越大、越來越複雜,PayPal 尋求現代化其系統並縮短新應用程式的上市時間。
Go 在產生乾淨、高效的程式碼方面的價值,以及隨著軟體部署規模而擴充的靈活性,使這門語言非常適合支援 PayPal 的目標。
付款處理平台的核心是一個 PayPal 以 C++ 開發的專有 NoSQL 資料庫。然而,程式碼的複雜性大幅降低了開發人員進化平台的能力。Go 的簡單程式碼佈局、goroutine(輕量級執行緒)和通道(用作連接並行 goroutine 的管道),使 Go 成為 NoSQL 開發團隊簡化和現代化平台的自然選擇。
作為概念驗證,一個開發團隊花了六個月學習 Go,並從頭開始使用 Go 重新實作 NoSQL 系統,在此期間,他們還提供了有關如何在 PayPal 更廣泛地實作 Go 的見解。截至今日,30% 的叢集已遷移至使用新的 NoSQL 資料庫。
使用 Go 簡化以擴充
隨著 PayPal 平台變得越來越複雜,Go 提供了一種方法,可以輕鬆簡化在規模上建立和執行軟體的複雜性。這門語言為 PayPal 提供了出色的函式庫和快速的工具,以及並行性、垃圾回收和類型安全性。
透過 Go,PayPal 讓開發人員能花更多時間檢視程式碼並進行策略性思考,讓他們免於 C++ 和 Java 開發的雜訊。
在這個新編寫的 NoSQL 系統成功後,PayPal 內部更多平台和內容團隊開始採用 Go。Natarajan 目前的團隊負責 PayPal 的建置、測試和發布管線,這些都是以 Go 建置的。這家公司有一個大型建置和測試場域,完全使用 Go 基礎架構管理,以支援公司內開發人員的建置即服務(和測試即服務)。
使用 Go 現代化 PayPal 系統
由於 PayPal 需要分散式運算功能,因此 Go 是更新其系統的正確語言。PayPal 需要同時並行運作的編程,編譯以獲得高性能和高度可攜性,並為開發人員帶來模組化、可組合的開放原始碼架構的優點,而 Go 已提供所有這些功能,並協助 PayPal 現代化其系統。
安全性與可支援性是 PayPal 的關鍵事項,而該公司的營運管線也越來越受 Go 支配,因為該語言的簡潔性和模組化有助於他們達成這些目標。PayPal 部署 Go 為開發人員帶來一個創意的平台,讓他們能夠為 PayPal 的全球市場大規模製作出簡單、高效且可靠的軟體。
隨著 PayPal 持續使用 Go 現代化其軟體定義網路(SDN)基礎架構,他們除了看到更易於維護的程式碼外,也看到了效能優點。例如,Go 現在支援路由器、負載平衡器和越來越多數量的生產系統。
「在我們執行 Go 程式碼的嚴格管理環境中,我們發現更簡潔且可維護的程式碼,讓 CPU 減少了大約 10%。」
Go 提升開發人員生產力
PayPal 作為全球營運公司,需要其開發團隊有效管理兩種規模:生產規模,特別是與許多其他伺服器(例如雲端服務)互動的並行系統;以及開發規模,特別是由許多程式設計師協調開發的大型程式碼庫(例如開源開發)
PayPal 採用 Go 來解決這些規模問題。該公司的開發人員受益於 Go 的能力,它結合了直譯式動態類型語言的程式設計容易性,以及靜態類型編譯語言的效率和安全性。隨著 PayPal 現代化其系統,對網路和多核心運算的支持至關重要。Go 不僅提供此類支援,而且提供得很快,在單一電腦上編譯大型可執行檔最多只需幾秒鐘。
PayPal 目前有超過 100 位 Go 開發人員,而未來選擇採用 Go 的開發人員將更容易獲得語言認可,這要歸功於該公司在生產中已經有許多成功的實作。
最重要的是,PayPal 開發人員使用 Go 提升了他們的生產力。Go 的並行機制讓撰寫能充分利用 PayPal 多核心和網路機器效能的程式變得容易。使用 Go 的開發人員也受益於它能快速編譯成機器碼,而且他們的應用程式獲得了垃圾收集的便利性以及執行時期反射的強大功能。
加速 PayPal 的上市時間
PayPal 目前的一流語言是 Java 和 Node,而 Go 主要用作基礎架構語言。雖然 Go 可能永遠無法取代某些應用程式的 Node.js,但 Natarajan 正努力讓 Go 成為 PayPal 的一流語言。
在 PayPal 的努力下,PayPal 也正在評估轉移到 Google Kubernetes Engine (GKE),以加速其新產品的上市時間。GKE 是用於部署容器化應用程式的受管理且可進行生產的環境,並帶來 Google 在開發人員生產力、自動化運作和開放原始碼靈活性方面的最新創新。
對於 PayPal 來說,部署到 GKE 將能透過讓 PayPal 更容易部署、更新和管理其應用程式和服務,來實現快速開發和反覆運算。此外,PayPal 將會發現更容易執行機器學習、通用 GPU、高效能運算和其他從 GKE 支援的專業硬體加速器中受益的工作負載。
對 PayPal 來說,最重要的部分是 Go 開發和 GKE 的結合,讓公司能夠毫不費力地擴充以滿足需求,因為 Kubernetes 自動擴充將允許 PayPal 處理使用者對服務增加的需求,在最重要的時候保持服務可用性,然後在較平穩的時期縮小規模以節省成本。
讓您的企業開始使用 Go
PayPal 的故事並非獨一無二;數十家其他大型企業正在發現 Go 如何幫助他們更快速地發布可靠的軟體。全球有超過一百萬名開發人員使用 Go,橫跨銀行和商業、遊戲和媒體、科技和其他產業,在像 American Express、Mercado Libre、Capital One、Dropbox、IBM、Monzo、New York Times、Salesforce、Square、Target、Twitch、Uber 和 Google 等多元化的企業中。
若要進一步了解 Go 如何幫助您的企業像 PayPal 一樣建置可靠且可擴充的軟體,請立即前往 go.dev。
關於 PayPal
Go 在產生乾淨、高效的程式碼方面的價值,以及隨著軟體部署規模而擴充的靈活性,使這門語言非常適合支援 PayPal 的目標。