挑戰
Sling TV 於 2015 年由 DISH Network 推出,從一開始就經歷了巨大的客戶增長。僅僅一年後,「我們正經歷一些舊有系統的成長痛,並試圖找到正確的架構來實現我們的未來,」Sling TV 的雲原生與大數據 Evangelist Brad Linder 說道。公司面臨著特殊的挑戰:「我們將直播電視透過網際網路分發到我們無法控制的使用者裝置上,」Linder 說。「在許多方面,我們就像在蠻荒西部工作:網際網路就是那樣,如果客戶的服務因任何原因無法運作,他們不在乎為什麼。他們只是希望事情能順利運作。這些是我們必須嘗試解決的方程式中的變數。我們真的必須努力實現選擇性,並在網路規模下提供良好的客戶體驗。」
解決方案
秉持著「雲原生架構和模式確實為我們提供了很大的彈性,以滿足這類客戶群的需求」的信念,Linder 與 Rancher Labs 合作,圍繞 Kubernetes 构建 Sling TV 的下一代平台。「我們將需要在某個時候啟用混合雲策略,包括多個公有雲和一個內部部署的 VMWare 多資料中心環境,以滿足業務需求,因此獲得這種抽象化是一個真正的目標,」他說。「這是我們選擇 Kubernetes 的最大原因之一。」該團隊在 Sling TV 的兩個內部資料中心啟動了首批 Kubernetes 應用程式。將 AWS 作為資料中心選項的推動正在進行中,預計將在 2018 年底前完成。該團隊添加了 Prometheus 用於監控,以及 Jaeger 用於追蹤,與公司現有的工具集:Zenoss、New Relic 和 ELK 協同工作。
影響
「我們正朝著可以一鍵部署整個資料中心的方向前進——包括運算、網路、Kubernetes、日誌記錄、監控和所有應用程式,」Linder 說。「我們真正實現了一種基於平台思維的方法,允許應用程式使用通用工具。一個新的應用程式可以使用通用工具和 CI/CD 流程在大約一小時內完成部署。這方面的收益是巨大的。以前,一個新的應用程式部署至少需要幾天才能完成。這還不包括培訓我們的營運人員來管理這個新的應用程式。這在時間和成本上節省了兩到三個數量級,並且在營運上,它讓我們有機會讓一支由才華橫溢的營運工程師組成的核心團隊管理通用基礎架構和工具,以使我們的應用程式在網路規模下可用。」
當然,從供應商的角度來看,這帶來了一系列特殊的挑戰。「我們將直播電視透過網際網路分發到我們無法控制的使用者裝置上,」Sling TV 的雲原生與大數據 Evangelist Brad Linder 說。「在許多方面,我們就像在蠻荒西部工作:網際網路就是那樣,如果客戶的服務因任何原因無法運作,他們不在乎為什麼。他們只是希望事情能順利運作。這些是我們必須嘗試解決的方程式中的變數。我們真的必須努力實現選擇性,並且我們必須在網路規模下做到這一點。」
事實上,Sling TV 從 2015 年 DISH Network 推出以來就經歷了巨大的客戶增長。僅僅一年後,「我們正經歷一些舊有系統的成長痛,並試圖找到正確的架構來實現我們的未來,」Linder 說。Linder 的任務是為「個人化客戶體驗」建構下一代網路規模平台,他在過去一年中將 Kubernetes 引入了 Sling TV。
秉持著「雲原生架構和模式確實為我們提供了很大的彈性,以滿足客戶需求」的信念,Linder 與 Rancher Labs 合作,圍繞 Kubernetes 构建平台。「他們真的幫助我們理解如何使用 Kubernetes,」他說。「我們需要彈性來實現我們的用例,而不僅僅是一個簡單的協調器。以不讓我們受限於供應商的方式實現我們的未來也是我們策略的關鍵部分。我認為這是 Rancher 價值主張的一部分。」
他選擇 Kubernetes 的一大原因是獲得了抽象化層級,這將使公司能夠「啟用混合雲策略,包括多個公有雲和一個內部部署的 VMWare 多資料中心環境,以滿足業務需求」,他說。另一個因素是 Kubernetes 生態系統在過去幾年中成熟了多少。「我們花費了大量的時間和精力在日誌記錄、監控和警報方面,使其達到生產就緒狀態,以便深入了解應用程式的健康狀況,」Linder 說。該團隊添加了 Prometheus 用於監控,以及 Jaeger 用於追蹤,與公司現有的工具集:Zenoss、New Relic 和 ELK 協同工作。
由於強調通用工具,「我們正朝著可以一鍵部署整個資料中心的方向前進——包括運算、網路、Kubernetes、日誌記錄、監控和所有應用程式,」Linder 說。「我們真正實現了一種基於平台思維的方法,允許應用程式使用通用工具和服務。一個新的應用程式可以使用通用工具和 CI/CD 流程在大約一小時內完成部署。這方面的收益是巨大的。以前,一個新的應用程式部署至少需要幾天才能完成。這還不包括培訓我們的營運人員來管理這個新的應用程式。這在時間和成本上節省了兩到三個數量級,並且在營運上,它讓我們有機會讓一支由才華橫溢的營運工程師組成的核心團隊管理通用基礎架構和工具,以使我們的應用程式在網路規模下可用。」
該團隊在 2018 年第一季度初在 Sling TV 的兩個內部資料中心啟動了首批 Kubernetes 應用程式,並開始將 AWS 作為資料中心選項啟用。公司計劃未來擴展到其他公有雲。
第一個投入生產的應用程式是一個基於 WebSocket 的後端通知服務。「它允許後端更改觸發訊息到我們現場的客戶端,而無需輪詢,」Linder 說。「我們正在談論這個應用程式非常大量的訊息。如果沒有像 Kubernetes 這樣能夠向上和向下擴展以及支援整體工作負載的東西,這很難做到。我幾乎可以大膽地說,如果沒有雲原生模式和 Kubernetes 提供的彈性,我們現在建構的大多數應用程式都不可能實現。」
Linder 負責監督三個團隊共同建構下一代平台:平台工程團隊;企業中間件服務團隊;以及大數據與分析團隊。「我們真的試圖將所有東西整合在一起,以便能夠讓客戶端應用程式與雲原生中間件層互動。該中間件層必須在平台上運行,使用平台服務,然後讓人工智慧代理監控日誌和事件,以保持系統平穩運行,」Linder 說。
最終,這項任務是關於「嘗試將 Kubernetes 與 AI 結合,以實現僅需運作的網路規模」,他補充道。「我們希望人工智慧代理和大數據平台使用來自應用程式、Kubernetes、基礎架構、後端服務和環境變化的實際日誌和事件來做出決策,例如,「嘿,我們需要更多這個服務的容量,所以請添加更多節點。」從平台的角度來看,如果你真的在做網路規模的事情,而你沒有使用 AI 和大數據,在我看來,你將會因自身重量而內爆。這不是是否會發生的問題,而是何時發生的問題。如果你處於「數百萬用戶」的環境中,那麼這種內爆將是災難性的。我們正在朝著這個目標邁進,並在此過程中學到了很多東西。」
對於 Sling TV 來說,轉向雲原生正是他們所需要的。「我們必須能夠對矩陣中的變化和異常做出反應,」Linder 說。「這是我們為客戶提供高品質服務能力的基礎。建構智慧平台、工具和現場客戶端來使用這些服務必須是這一切的一部分。在我看來,這是雲原生的重要組成部分。它是將這些分散的、可能不可靠的實體轉變為能夠提供他們期望的穩健客戶體驗。」