Netflix 如何在遷移高流量系統時避免停機?

2023年12月29日

💎 加入 E+ 成長計畫 與超過 250+ 位軟體工程師一起在社群中成長,並且獲得更深入、系統性軟體工程內容

本篇最早收錄於《ExplainThis 全端雙週報》第 2 期

在系統設計的面試題中,經常會有追問「如何遷移系統」。Netflix 的團隊在他們的官方技術部落格中,發表了《Migrating Critical Traffic At Scale with No Downtime — Part 1》分享他們實際遷移的經驗。

對大型且複雜的系統來說,通常遷移系統意味著要處理無數個子系統與伺服器。在過程中,要是有環節出錯,可能導致連環的錯誤,進而影響到使用者。對於 Netflix 這種講求高可用性的產品來說,影響到使用者,哪怕只是幾秒鐘,也將可能造成巨大的商業損失。

Netflix 團隊把遷移的過程拆分成兩個階段,第一階段是針對功能正確性、可擴展性,以及效能問題,確保新系統有足夠的強韌性;第二階段則是在實際遷移時,確保可能的風險能有對應的處理方案,以及有相對應的指標來監控。

Netflix 團隊具體採用的做法是回放流量測試 (Replay Traffic Testing),也就是複製在生產環境的流量到另一個路徑,然後在複製的版本中進行更新。這樣的做法可以完整模擬生產環境的狀況,但同時又如同有個沙盒環境可以測試,所以不會影響到實際的生產環境。

在這篇文章中,他們分析了為什麼在評估多個方案後,最終採取這種策略。特別推薦大家可以讀他們的分析,因為在選擇技術方案,往往要面對許多取捨,不論在面試與現實工作中,你需要能夠說明為什麼你選 A 方案而不是 B,這篇文章的分析脈絡很值得參考。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們