本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
每秒百萬次請求:規模化可靠且動態的分散式系統
最近,我養成了告訴別人構建可靠服務並不難的習慣。如果你給我兩臺 Compute Engine 虛擬機器、一個 Cloud Load Balancer、supervisord 和 nginx,我可以為你建立一個靜態 Web 服務,它將永久有效地提供靜態網頁。
真正的挑戰是構建敏捷**且**可靠的服務。在新的軟體開發世界中,啟動大量機器並將軟體推送到它們是微不足道的。開發成功的產品**還必須**包括以可預測的方式響應變化、優雅地處理升級以及最大限度地減少使用者停機時間的能力。缺少任何一個元素都會導致產品**失敗**,變得不穩定和不可靠。我記得不久前,網站每天午夜左右會離線一小時,作為軟體升級的安全視窗是很常見的。我的銀行現在仍然這樣做。這真的很不酷。
幸運的是,對於開發人員來說,我們的基礎設施正在隨著我們對其提出的要求而發展。Kubernetes 從一開始就被設計成易於設計、開發和部署可靠、動態的服務,以滿足雲原生世界的嚴苛要求。
為了準確展示我們所說的含義,我開發了一個簡單的演示,展示了 Container Engine 叢集每秒處理 100 萬個 HTTP 請求。老實說,每秒處理 100 萬個請求並不是那麼令人興奮。事實上,這真的很 2013 年了。
**令人興奮的是**,在成功處理每秒 100 萬個 HTTP 請求且不間斷可用性的同時,我們讓 Kubernetes 對服務進行了零停機滾動升級到新版本的軟體,**而且我們**仍然在處理每秒 100 萬個請求。
這隻有透過 Kubernetes 1.1 版本中包含的大量效能調整和增強功能才能實現。我為我們社群在此版本中構建的所有功能感到無比自豪。事實上,除了實現每秒處理 100 萬個請求之外,我們還添加了自動擴縮器,這樣您甚至不必在半夜醒來,就可以根據負載或記憶體壓力來擴縮服務。
如果您想在自己的叢集上試用此功能(或使用負載測試框架來測試自己的服務),演示程式碼可在 GitHub 上獲取,完整影片也已提供。
我希望我已經向您展示了 Kubernetes 如何使分散式系統開發人員能夠在大規模上實現可靠性和敏捷性。一如既往,如果您有興趣瞭解更多資訊,請訪問 kubernetes.io 或 GitHub,並在我們的 Slack 頻道與社群聯絡。
"https://www.youtube.com/embed/7TOWLerX0Ps"