Rappi 使用 Istio 管理成長的痛點
Rappi 連接企業、消費者和送貨人員,其使命是讓使用者有更多自由時間。他們的應用程式讓使用者可以訂購各種商品和服務。它是拉丁美洲第一個超級應用程式,業務遍及九個國家和 250 多個城市。自 2015 年公司成立以來,該應用程式的下載次數已超過 1 億次。
隨著巨大的成功而來的是快速成長的挑戰,而 Rappi 一直在不斷成長。在過去幾年中,該公司的價值從 1 億美元增長到 80 億美元。他們的技術必須跟上業務的步伐,這就是他們選擇在 Kubernetes 上部署和管理其應用程式的原因。Kubernetes 仍然是推動其基礎設施驚人成長的工具。
然而,即使有了 Kubernetes,Rappi 的基礎設施仍然面臨著巨大的挑戰。他們如何管理其超過 50 個 Kubernetes 叢集的成長,其中最大的叢集運行超過 20,000 個容器?
挑戰:成功的壓力
儘管 Rappi 團隊已設法將其基礎設施遷移到 Kubernetes,但他們仍在與成長的痛點作鬥爭。他們必須發展成為一家技術公司,才能跟上業務的步伐。為了幫助管理他們不斷擴張的基礎設施,他們開發了一個內部服務網格。不幸的是,這需要太多的維護,並且難以跟上他們所看到的成長速度。
「我記得 Lyft 使用 Envoy 的故事,我決定我們應該在我們的環境中測試一下,」Rappi 的資深 DevOps 工程師 Ezequiel Arielli 說。
解決方案:Istio 來救援
Rappi 團隊決定部署使用 Envoy sidecars 的 Istio。這是一個完美的選擇。當他們承接這個新專案時,他們發現文件提供了出色的支援,並且 Istio API 既清晰又高效。Istio 是他們管理成長痛點的解決方案。
隨著最初 Istio 部署成功的消息在整個組織中傳播開來,越來越多的 Rappi DevOps 團隊開始轉向 Istio。最初,只有 30 人的團隊在使用 Istio,但今天這個數字已增長到 1,500 多名開發人員。
Istio 使 Rappi 的 DevOps 團隊可以靈活地為不同的服務設定不同的規格。他們能夠自訂速率限制、斷路器、連接池、逾時和其他關鍵參數。
他們發現 Istio 還提供了極其有用的安全性和合規性功能。例如,服務網格可以分割垂直流量並限制不同端點之間的通信。
「Istio 讓我們可以靈活地為不同的服務設定不同的規格,」Rappi 的 DevOps 技術主管 Juan Franco Cusa 說。「它還為安全性和合規性提供了極其有用的功能,這對於高安全性環境非常方便。」
「當我們之前的解決方案達到極限時,我們能夠使用 Istio 重構我們的監控堆疊,」Arielli 解釋說。「Istio 無縫地讓我們的團隊能夠監控任何規模的服務。」
當他們的基礎設施超過 30,000 個容器時,這變得至關重要。
結果:基礎設施持續增長
開發團隊構建了一個自動化的、可投入生產的 Kubernetes 和 Istio 叢集部署。他們在 Kubernetes 叢集之上分層的內部 API,使他們能夠管理每個叢集中的微服務。此外,每個微服務都會在部署期間自動建立和分配流量資源。由於此系統,他們每天能夠管理超過 1,500 個部署。
「我們的配置使我們的 Kubernetes 使用量和基礎設施能夠繼續增長,」Arielli 說。「我們現在管理著超過 50 個 Kubernetes 叢集,其中最大的叢集包含超過 20,000 個容器。我們的環境不斷變化,Istio 有助於確保在所有環境中進行高效、可擴展且安全的通信。」
Istio 管理著最關鍵叢集上 1,500 多個應用程式之間的流量,並且由於其強大的功能集,他們能夠在需要時選擇不同的部署策略。即使流量持續增加,Istio 控制平面也可以輕鬆重新平衡連接。
Rappi 的下一步
Istio 採用背後的 DevOps 團隊仍在推進基礎設施的改進。
「未來,我們希望能夠在網格層級實施多叢集支援,」Arielli 說。「有了這項功能,應用程式在哪裡運行都無所謂。所有應用程式都將能夠跨叢集互相存取。」
結論:使用 Istio 成功擴展
借助 Istio 服務網格,Rappi 已設法隨著市場的需求而成長。他們可以輕鬆處理新叢集的部署,並在更多市場和城市啟動服務。
「感謝 Istio,我們相信 Rappi 將能夠部署更多服務和更多應用程式以滿足不斷增長的需求,」Arielli 說。