本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

每秒一百萬個請求:可信賴且動態的大規模分散式系統

最近,我養成了一個習慣,告訴人們建立可靠的服務並不難。如果您給我兩台 Compute Engine 虛擬機器、一個雲端負載平衡器、supervisord 和 nginx,我可以為您建立一個靜態 Web 服務,該服務將有效地永遠提供靜態網頁。

真正的挑戰是建立敏捷且可靠的服務。在新的軟體開發世界中,啟動大量機器並將軟體推送到這些機器上是微不足道的。開發成功的產品必須包括以可預測的方式響應變更、優雅地處理升級以及最大程度地減少使用者停機時間的能力。遺漏這些要素中的任何一個都會導致產品不成功,變得不可靠且不穩定。我記得不久前,網站每天午夜左右關閉一小時以作為軟體升級的安全窗口是很常見的。我的銀行仍然這樣做。這真的很遜。

幸運的是,對於開發人員來說,我們的基礎架構正在隨著我們對它的要求而發展。Kubernetes 從一開始就被設計為易於設計、開發和部署可靠、動態的服務,以滿足雲原生世界嚴苛的需求。

為了準確地示範我們的意思,我開發了一個 Container Engine 叢集的簡單演示,每秒處理 100 萬個 HTTP 請求。老實說,每秒處理 100 萬個請求並不是那麼令人興奮。事實上,這真的很 2013 年了。

真正令人興奮的是,在成功處理每秒 100 萬個 HTTP 請求且不間斷可用性的同時,我們讓 Kubernetes 對服務執行零停機時間滾動升級到新版本的軟體,而我們仍然仍在每秒處理 100 萬個請求

這僅僅是因為 Kubernetes 1.1 版本中進行了大量效能調整和增強。我為我們的社群在此版本中建構的所有功能感到非常自豪。實際上,除了使每秒處理 100 萬個請求成為可能之外,我們還新增了自動擴展器,這樣您甚至不必在半夜醒來擴展您的服務以響應負載或記憶體壓力。

如果您想在自己的叢集上試用此功能(或使用負載測試框架來測試您自己的服務),演示的程式碼可在 github 上取得完整影片也已提供。

我希望我已經向您展示了 Kubernetes 如何使分散式系統的開發人員能夠大規模實現可靠性和敏捷性,並且與往常一樣,如果您有興趣了解更多資訊,請前往 kubernetes.iogithub,並透過我們的 Slack 頻道與社群聯繫。

"https://www.youtube.com/embed/7TOWLerX0Ps"