6月25-27日,開源盛會LinuxCon+ContainerCon+CloudOpen(LC3)在北京召開,這也是LFAsia, LLC第二次將全球頂尖的開源專家彙集到北京,圍繞雲原生、無服務器、微服務、DevOps、人工智能、IOT、Linux系統與開發、網絡編排、區塊鏈、開源領導力等開源技術前沿話題,進行了全方位的探討。數據庫
網易雲做爲Linux基金會和CNCF基金會會員,同時也是國內首批經過Kubernetes一致性認證的雲服務商,也在本次大會中分享了在開源領域的積累和探索。網易雲解決方案總架構師劉超分享了《基於Kubernetes的百萬級QPS應用實踐》。據劉超介紹,在網易內部有着包括網易雲音樂、網易考拉等多個應用都運行在基於Kubernetes的網易雲平臺上。如何提升這些應用的擴展性,如何進行微服務的拆分等已經不僅是業務方的問題,也是基礎服務平臺方須要一塊兒解決的問題。
(網易雲解決方案總架構師 劉超)緩存
IT架構和應用架構的模糊化
劉超首先提到了IT架構和應用架構的一個趨勢,首先業務方已經愈來愈清楚地意識到IT架構的擴展,並不能徹底應對突發流量和應用的擴展問題。由於有了Docker和Kubernetes,IT架構和應用架構之間的分界線愈來愈模糊了:一方面開發要開始寫Dockfile,要關注鏡像環境的交付,開發要關心更多的問題;另外一方面IT架構要關心服務發現、配置中心和熔斷降級等問題,儘可能讓應用架構作的動心下沉到IT架構。這也是網易雲在開始重視應用層改造的緣由。
如何基於Kubernetes支持高併發應用
劉超結合高併發應用設計的10個要點,包括API網關;無狀態化,區分有狀態的和無狀態的應用;數據庫的橫向擴展;緩存;服務拆分和服務發現;服務編排與彈性伸縮;統一配置中心;統一的日誌中心;熔斷,限流,降級;全方位的監控,分析瞭如何基於Kubernetes實現支持高併發應用。服務器
針對以上10個要點,Kubernetes有的提供了相應的組件,有的沒有提供或提供的不夠好,劉超具體分析了哪些是應用架構層應該去作的,哪些是應該下沉到IT架構層面由Kubernetes去解決的。網絡
好比,服務拆分是高併發應用實現過程當中很是重要的問題,劉超根據網易考拉的實際經驗,總結了服務拆分的最佳實踐:服務拆分的前提是作好持續集成;服務拆分的時機是開發獨立、上線獨立、簡化擴容和容災降級;服務拆分的方法,針對複雜業務,業務過於龐大必須進行拆分,拆分出來的必須是相對獨立和龐大的業務;針對重耦合業務,首先獨立功能模塊,造成服務內部的分離,逐步創建新的工程,替換老工程。架構
同時,網易雲也在致力於對Service Mesh的支持,Service Mesh是處理服務間通信的專用基礎設施層,經過複雜的拓撲結構讓請求傳遞的過程變得更可靠,Service Mesh已經成爲繼Kubernetes成爲容器編排事實標準以後,雲原生領域的又一新趨勢。併發