CNCF案例研究:T-Mobile是如何利用Kubernetes來處理iPhone發佈時候的規模
- 2019 年 12 月 4 日
- 筆記
- 獲取新的數據庫從5天變成了5秒
- 95%的部署是在白天完成的,沒有任何影響
- 25人小組支援700位開發者

行業:電信
地點:美國
雲類型:混合
挑戰:可用性、效率、伸縮性和速度
產品類型:託管
使用的CNCF項目包括:Kubernetes
挑戰
美國第三大無線運營商T-Mobile發現自己不夠敏捷,無法跟上業務目標:2015年,新代碼投產花了7個月時間。第二年,公司採用了Pivotal Cloud Foundry。雖然遷移最關鍵的應用程序產生了很大的效果 — 生產時間縮短到不到一天 – 但並不是所有的應用程序,特別是Docker容器中的應用程序,都能在PaaS上順利運行。技術人員James Webb說:「我們需要一個容器編排器,它不僅滿足應用程序團隊的價值需求,還滿足我們管理它的能力需求。」主要需求:各個級別的高可用性、持久存儲以及無縫修補和升級基礎設施而不影響客戶的能力。
解決方案
該團隊花了6個月的時間與一家外部公司合作,為T-Mobile構建了一個完全開源的Kubernetes平台,但當Pivotal推出PKS時,他們決定轉換方向,目標是為2018年第三季度末開始的零售旺季做好準備。在去年9月新款iPhone發佈期間,Kubernetes上運行着少量的生產流量。平台架構總監Brendan Aye表示,今年9月,「我們將有很大一部分應用程序在Kubernetes上運行,尤其是在iPhone的銷售渠道上。」
影響
T-Mobile對Kubernetes的採用仍處於早期階段,但「團隊將從5到6天的等待時間,變為5到6秒的複製yaml並粘貼它並部署某些東西,或者單擊按鈕並立即獲得這些東西,」Aye說。在整個企業中啟用它將對交付速度產生很大的影響。「由於他們能夠更加接近自己的團隊來控制這些服務,他們將能夠更有能力利用我們提供的所有不同硬件區域以主動方式運行應用程序,無論是在我們的兩個數據中心之一作內部部署,或者是多個雲提供商上。」Aye說。
2015年,T-Mobile花了7個月時間才將新代碼投入生產。這當然不是美國第三大無線運營商實現其商業目標所需要的交付速度,所以第二年,這家公司採用了Pivotal的平台即服務產品 – Pivotal Cloud Foundry。
「它為我們解決了很多問題,」平台架構主管Brendan Aye說:「因為我們可以有非常一致的體驗,從開發到測試再到生產。」
Aye和技術人員James Webb花費了2017年的大部分時間,將T-Mobile最關鍵的應用程序分解為微服務,並將其遷移到Cloud Foundry。這次遷移產生了巨大的成果:7個月的生產時間縮短到不到一天。到今年年底,每天有2.5億個呼叫通過Cloud Foundry進行,主要是通過無狀態中間件層的自研應用程序進行的。
但是,並不是所有的應用程序,特別是供應商交付的、以Docker容器裝載到T-Mobile的應用程序,在更新期間都能在PaaS上順利運行。「因此,我們開始考慮我們必須採取什麼樣的選擇來運行更多的臨時容器。」Webb說:「我們需要一個容器編排器,它不僅滿足應用程序團隊所提供的價值方面的特定需求,而且還滿足我們管理它的能力。」主要需求是:各個級別的高可用性、持久存儲以及無縫修補和升級基礎設施而不影響客戶的能力。

「Kubernetes滿足了很多這樣的需求,」Webb說,那時候,「它已經成為主導力量。」Aye和Webb的團隊花了6個月的時間與一家外部公司合作,為T-Mobile構建了一個完全開源的Kubernetes平台,但當Pivotal推出PKS時,他們決定轉換方向。「我們以一種非常特殊的方式部署雲計算,如果我們可以用Kubernetes做同樣的事情,這將在我們如何操作、我們構建的自動化和我們所做的監控方面給我們帶來很多效率,」Aye說:「這是三贏。」他們的目標是為2018年第三季度末開始的零售旺季做好準備。在去年9月新款iPhone發佈期間,Kubernetes上運行着少量的生產流量。Webb說:「我們希望在2019年推出更多的應用程序。」Aye說,今年9月,「我們將有很大一部分應用程序在Kubernetes上運行,尤其是在iPhone的銷售渠道上。」

事實上,轉移到容器和雲原生的任務來自T-Mobile的高層,Webb說:「我們正在使用Kubernetes為企業帶來更多的容器好處。」在未來的幾個月里,該團隊預計各種關鍵任務應用程序將被遷移到Kubernetes平台,包括像流動銷售點這樣的零售商店應用程序,讓T-Mobile商店的銷售助理能夠在他們的iPad上記錄你的購買。但還有許多其他類型的應用程序最終在平台上提供,所以「我們試圖建立一個系統,我們可以優化,使它適合所有通用的,然後我們開始越來越個別的用例,可以幫助我們關注的過程中出現的問題。」Webb說。

隨着Kubernetes帶來的承諾,人們排起了長隊上線。但是有一個學習曲線,Webb和Aye的團隊是從平台工程師發展到客戶成功工程師,策略是「建築內部對如何使用Kubernetes卓越中心,如何作雲原生開發,然後確保這些人與公司的其他人分享這些知識,」Webb說。這意味着要與Pivotal合作開發一些內部培訓,但其理念是,並非每個人都需要成為Kubernetes的專家。「你的價值來自於為應用程序交付特性,而不是學習Kubernetes和部署容器。」Aye說:「如果你不需要管理這些事情,你就不應該去嘗試。」
「我們正在使用Kubernetes為企業帶來更多容器的好處。」 – James Webb,T-Mobile技術人員
T-Mobile對Kubernetes的採用還處於早期階段,但是「我們已經看到了運行管理容器的大型平台的影響,並從我們的開發過程中消除了低效,」Webb說:「我們預計Kubernetes也會有同樣的影響;這只是時間問題。」
遷移到容器和Cloud Foundry已經將生產部署的時間從7個月減少到同一天,現在95%的部署是在白天完成的,沒有任何影響。對於Kubernetes, Aye有更多的期望。「我們將看到,不僅能夠提供內部開發的服務,還能提供其他服務,以更快地支持業務。」他表示:「我們不說我們是一個團隊,現在給你一個數據庫,而是:我們是一個團隊,提供一個操作器,讓你給自己一個數據庫。所以這些團隊將從5到6天的等待時間,到5到6秒的複製yaml、粘貼和部署,或者單擊按鈕並立即得到它。」
在整個企業中啟用它將對交付速度產生很大的影響。「由於他們能夠更加接近自己的團隊來控制這些服務,他們將能夠更有能力利用我們提供的所有不同硬件區域以主動方式運行應用程序,無論是在我們的兩個數據中心之一作內部部署,或者是多個雲提供商上。」Aye說。
「我們很難找到那些擁有Kubernetes或Cloud Foundry 經驗的非在職人士。所以,我們儘可能地讓組織里其他願意學習的人提供培訓。」 – Brendan Aye,T-Mobile平台架構總監
與此同時,T-Mobile的文化受到了積極的影響。在這個項目開始的時候,Webb和Aye是獨立的,在2017年的遷移過程中只增加了幾個人。從那時起,他們已經為平台工程團隊增加了20多人。「我們很難找到那些擁有Kubernetes或雲計算經驗的非在職人士。」Aye表示:「所以,我們儘可能地讓組織其他部門中願意學習的人提供培訓。即使他們時間花在Unix操作團隊,或者是Puppet構建團隊,我們還是將他們引入了我們的團隊。我們發現,這些人都是真正熱情的問題解決者,渴望學習,並對客戶有着執着的關注。」
Webb補充道:「我們擁有這種靈活性,這證明了公司認為這些產品對他們未來的成功有多麼重要。」
同樣重要的是,容器化和Kubernetes帶來的變化已經體現在公司內部的思維方式上。「如果出了什麼問題,你知道你可以部署一個新版本,如果它崩潰得很厲害,你可以在幾分鐘或幾秒鐘內回到舊版本,」Aye說。「所以你可以因此承擔更多的風險,嘗試新事物。從領導層到個人貢獻者,我們看到他們更願意承擔這種風險。」

