公司 AppDirect 地點 美國加州舊金山 產業 軟體業

挑戰

AppDirect 為雲端產品和服務提供端對端商務平台。軟體開發總監 Pierre-Alexandre Lacerte 在 2014 年開始於該公司任職時,公司有一個部署在「Tomcat 基礎架構」上的單體式應用程式,「整個發布流程對它來說太複雜了」,他說。「其中涉及許多手動步驟,一個工程師建構一個功能,然後另一個團隊接手變更。因此,在將功能發布到生產環境的流程中,您會遇到瓶頸。」同時,工程團隊不斷壯大,公司意識到需要更好的基礎架構,以支援成長並提高速度。

解決方案

「我的想法是:讓我們創建一個環境,讓團隊可以更快地部署他們的服務,他們會說,『好的,我不想再在單體式架構中建構了。我想建構一個服務』,」Lacerte 說。他們在決定於 2016 年初採用 Kubernetes 之前,考慮並原型化了幾種不同的技術。Lacerte 的團隊還將 Prometheus 監控整合到平台中;下一步是追蹤。如今,AppDirect 在生產環境中擁有超過 50 個微服務,並在全球各地的 AWS 和內部部署了 15 個 Kubernetes 叢集。

影響

Kubernetes 平台協助支援了工程團隊在過去幾年中的 10 倍成長。Lacerte 說,再加上他們不斷新增功能,「如果我們沒有這個新的基礎架構,我認為我們的速度會減慢很多。」遷移到 Kubernetes 和服務意味著部署變得更快,因為對自製、脆弱的 shell 腳本和 SCP 命令的依賴減少了。部署新版本的時間已從 4 小時縮短到幾分鐘。此外,公司投入大量精力使開發人員能夠自助服務。「導入新服務不需要 Jira 工單或與三個不同的團隊開會」,Lacerte 說。如今,公司每週看到 1,600 次部署,而之前為 1-30 次。透過將其市場和計費單體式架構從傳統 EC2 主機遷移到 Kubernetes,以及利用自動擴展,公司也實現了成本節省,因為業務時間內的流量較高。

憑藉其雲端產品和服務的端對端商務平台,自 2009 年以來,AppDirect 一直在協助 Comcast 和 GoDaddy 等組織簡化數位供應鏈。

當軟體開發總監 Pierre-Alexandre Lacerte 在 2014 年開始在那裡工作時,公司有一個部署在「Tomcat 基礎架構」上的單體式應用程式,「整個發布流程對它來說太複雜了」,他說。「其中涉及許多手動步驟,一個工程師建構一個功能,然後建立提取請求,QA 或另一個工程師驗證該功能。然後它被合併,其他人將負責部署。因此,我們在將功能發布到生產環境的流程中遇到了瓶頸。」

與此同時,40 人的工程團隊不斷壯大,公司希望為其產品新增越來越多的功能。作為平台團隊的成員,Lacerte 開始聽到多個團隊希望使用不同的框架和語言來部署應用程式,從 Node.jsSpring Boot Java。他很快意識到,為了支援成長並提高速度,公司需要更好的基礎架構,以及一個團隊可以自主、可以自行部署並對其生產環境中的服務負責的系統。

Lacerte 說,從一開始,「我的想法是:讓我們創建一個環境,讓團隊可以更快地部署他們的服務,他們會說,『好的,我不想再在單體式架構中建構了。我想建構一個服務』。」(Lacerte 於 2019 年離開公司。)

Lacerte 的團隊與營運團隊合作,獲得了對公司 AWS 基礎架構 的更多控制和存取權限,並開始原型化幾種協調技術。「那時,Kubernetes 有點默默無聞,不為人知,」他說。「但我們查看了社群、提取請求的數量、GitHub 上的速度,我們看到它正在獲得關注。我們發現它比其他技術更容易管理。」

他們使用 ChefTerraform 佈建在 Kubernetes 上啟動了最初的幾個服務,並且隨著新增更多服務,也新增了更多自動化。「我們在全球各地都有叢集——在韓國、澳洲、德國和美國,」Lacerte 說。「自動化對我們至關重要。」他們現在主要使用 Kops,並且正在研究幾家雲端供應商提供的託管 Kubernetes 產品。

儘管單體式架構仍然存在,但如今提交和功能的數量越來越少。所有團隊都在新的基礎架構上部署,服務已成為常態。AppDirect 現在在生產環境中擁有超過 50 個微服務,並在全球各地的 AWS 和內部部署了 15 個 Kubernetes 叢集。

Lacerte 的策略最終奏效,因為 Kubernetes 平台對部署時間產生了非常實際的影響。由於減少了對自製、脆弱的 shell 腳本和 SCP 命令的依賴,部署新版本的時間已從 4 小時縮短到幾分鐘。此外,公司投入大量精力使開發人員能夠自助服務。「導入新服務不需要 Jira 工單或與三個不同的團隊開會」,Lacerte 說。如今,公司每週看到 1,600 次部署,而之前為 1-30 次。

此外,Kubernetes 平台協助支援了工程團隊在過去幾年中的 10 倍成長。「AppDirect 的核心價值觀『所有權』反映在我們獨立於單體式程式碼庫發布服務的能力中」,與 Lacerte 共同參與該計畫的員工軟體開發人員 Alexandre Gervais 說。「小型團隊現在擁有我們業務領域模型的關鍵部分,他們在其解耦的專業領域中運作,對整個程式碼庫的了解有限。這減少並隔離了一些複雜性。」Lacerte 說,再加上他們不斷新增功能,「我認為如果我們沒有這個新的基礎架構,我們的速度會減慢很多。」

透過將其市場和計費單體式架構從傳統 EC2 主機遷移到 Kubernetes,以及利用自動擴展,公司也實現了成本節省,因為業務時間內的流量較高。

AppDirect 的雲原生堆疊還包括 gRPCFluentd,團隊目前正在設定 OpenCensus。該平台已經整合了 Prometheus,因此「當團隊部署他們的服務時,他們擁有他們的通知、警報和配置」,Lacerte 說。「例如,在測試環境中,我希望在 Slack 上收到訊息,在生產環境中,我希望收到 Slack 訊息,並且我也希望收到呼叫。我們與呼叫值班系統整合。團隊對他們的服務擁有更多所有權。」

當然,這也意味著更多的責任。「我們要求工程師擴展他們的視野」,Gervais 說。「我們從一種僅限於『在分支中推送程式碼』的文化轉變為程式碼庫之外令人興奮的新責任:功能的部署和配置;應用程式和業務指標的監控;以及在發生中斷時的隨時待命支援。這是一次巨大的工程文化轉變,但就規模和速度而言,好處是不可否認的。」

隨著工程團隊規模持續擴大,平台團隊面臨著一個新的挑戰,即如何確保每個人都能輕鬆存取和利用 Kubernetes 平台。「當我們向團隊新增更多人員時,我們如何確保他們高效、高產,並知道如何快速上手平台?」Lacerte 說。因此,我們有傳道者、文件、一些專案範例。我們進行演示、我們有 AMA 會議。我們正在嘗試不同的策略來引起大家的注意。」

Gervais 認為,在他們 Kubernetes 之旅的三年半時間裡,AppDirect「在正確的時間做出了正確的決定」,他說。「Kubernetes 和雲原生技術現在被視為事實上的生態系統。我們知道在哪裡集中精力,以應對我們在擴展時面臨的新一波挑戰。社群非常活躍且充滿活力,這對我們出色的內部團隊來說是一個很好的補充。展望未來,我們的重點將真正轉向從生態系統中獲益,從而在我們的日常運營中提供額外的業務價值。」