挑戰
網易的遊戲業務是全球最大的遊戲業務之一,但這並非網易為中國消費者提供的全部。該公司還運營電子商務、廣告、音樂流媒體、線上教育和電子郵件平臺;其中電子郵件平臺透過163.com等網站為近十億使用者提供免費電子郵件服務。2015年,為所有這些系統提供基礎設施的網易雲團隊意識到,他們的研發流程正在拖慢開發人員的速度。“我們的使用者需要自行準備所有基礎設施,”網易雲及容器服務架構師馮昌健表示,“我們渴望透過無伺服器容器服務自動為使用者提供基礎設施和工具。”
解決方案
在考慮了構建自己的編排解決方案後,網易決定將其私有云平臺基於Kubernetes。該技術源自谷歌的事實讓團隊相信它能夠滿足網易的規模需求。“經過兩到三個月的評估,我們相信它能夠滿足我們的需求,”馮昌健說。團隊於2015年開始使用Kubernetes,甚至在1.0版本釋出之前。如今,網易內部雲平臺——該平臺還利用了CNCF專案Prometheus、Envoy、Harbor、gRPC和Helm——在生產叢集中執行著10,000個節點,並且可以在一個叢集中支援多達30,000個節點。基於其內部平臺的經驗,公司向外部客戶推出了基於Kubernetes的雲和微服務導向的PaaS產品——網易輕舟微服務。
影響
網易團隊報告稱,Kubernetes 將研發效率提高了 100% 以上。部署效率提高了 280%。“過去,如果我們想進行升級,需要與其他團隊,甚至其他部門合作,”馮昌健說,“我們需要專門人員來準備一切,大約需要半小時。現在我們只需 5 分鐘就能完成。”新平臺還允許使用 GPU 和 CPU 資源進行混合部署。“以前,如果我們將所有資源都投入到 GPU 上,那麼就不會有備用資源給 CPU。但現在,由於混合部署,我們取得了改進,”他說。這些改進還帶來了資源利用率的提高。
該公司還在中國運營電子商務、廣告、音樂流媒體、線上教育和電子郵件平臺;其中電子郵件平臺透過163.com和126.com等熱門網站為近十億使用者提供免費電子郵件服務。擁有如此大規模,為所有這些系統提供基礎設施的網易雲團隊在2015年意識到,他們的研發流程使開發人員難以跟上需求。“我們的使用者需要自行準備所有基礎設施,”網易雲及容器服務架構師馮昌健表示,“我們渴望透過無伺服器容器服務自動為使用者提供基礎設施和工具。”
在考慮了構建自己的編排解決方案後,網易決定將其私有云平臺基於Kubernetes。該技術源自谷歌的事實讓團隊相信它能夠滿足網易的規模需求。“經過兩到三個月的評估,我們相信它能夠滿足我們的需求,”馮昌健說。
該團隊於 2015 年開始採用 Kubernetes,甚至在 1.0 版本釋出之前,因為它相對易用且在公司內部實現了 DevOps。“我們放棄了 Kubernetes 的一些概念;我們只想使用標準化框架,”馮昌健說。“我們利用了 Kubernetes 的可程式設計性,這樣我們就可以構建一個平臺來滿足我們內部客戶對升級和部署的需求。”
團隊首先專注於構建容器平臺以更好地管理資源,然後將注意力轉向透過新增監控等內部系統來改進對微服務的支援。這意味著要整合 CNCF 專案 Prometheus、Envoy、Harbor、gRPC 和 Helm。“我們正在努力提供一個簡化和標準化的流程,這樣我們的使用者和客戶就可以利用我們的最佳實踐,”馮昌健說。
團隊仍在不斷改進。例如,電子商務業務需要利用混合部署,這在過去需要使用兩個獨立的平臺:基礎設施即服務平臺和 Kubernetes 平臺。最近,網易建立了一個跨平臺應用程式,可以透過一鍵部署同時使用這兩個平臺。
如今,網易內部雲平臺“可以在單個叢集中支援30,000個節點,”架構師曾玉興說。“在生產環境中,我們已在單個叢集中獲得了10,000個節點的資料。整個內部系統都使用該系統進行開發、測試和生產。”
網易團隊報告稱,Kubernetes 將研發效率提高了 100% 以上。部署效率提高了 280%。“過去,如果我們想進行升級,我們需要與其他團隊,甚至其他部門合作,”馮昌健說,“我們需要專門人員來準備一切,大約需要半小時。現在我們只需 5 分鐘就能完成。”新平臺還允許使用 GPU 和 CPU 資源進行混合部署。“以前,如果我們將所有資源都投入到 GPU 上,那麼就不會有備用資源給 CPU。但現在,由於混合部署,我們取得了改進。”這些改進還帶來了資源利用率的提高。
基於其內部平臺的使用成果和經驗,公司向外部客戶推出了基於Kubernetes的雲和微服務導向的PaaS產品——網易輕舟微服務。“我們的想法是,我們可以找出遊戲、電子商務和雲音樂提供商遇到的問題,從而整合他們的經驗,並提供一個平臺來滿足我們使用者的需求,”曾說。
無論是否使用網易的產品,團隊都鼓勵其他公司嘗試 Kubernetes。“只要一家公司擁有成熟的團隊和足夠的開發人員,我認為 Kubernetes 是一項非常好的技術,可以幫助他們,”Kubernetes 開發人員李蘭清說。
作為終端使用者和供應商,網易更多地參與到社群中,向其他公司學習並分享他們所做的工作。該團隊一直為 Harbor 和 Envoy 專案做貢獻,在網易規模下測試這些技術時提供反饋。“我們是一個專注於解決微服務架構挑戰的團隊,”馮昌健說,“透過參與這個社群,我們可以從中獲得一些經驗,我們也可以從中受益。我們可以看到社群面臨的關注點和挑戰,這樣我們就可以參與其中。”