云原生生態大會Day1,網易數帆揭秘云原生軟件生產力三重境
12月16-17日,由CNCF、網易數帆、VMware、PingCAP和阿里云聯合主辦2020 Cloud Native Day云原生生態大會線上召開,來自聯合主辦方及字節跳動、Zilliz、百勝中國等公司的17位重磅演講嘉賓,帶來2天主題分享,解析云原生領軍企業和組織、頭部用戶的云原生戰略與實踐,剖析云原生技術帶來的機遇與挑戰,幫助云原生技術使用者和愛好者加深對技術的理解,同時推進云原生與企業IT的融合。
在大會的第一天,網易數帆輕舟事業部總經理陳諤結合網易數帆旗下輕舟云原生平臺近五年來的三次重大技術變遷,分享了網易及廣大數字化進程中的企業在IT、業務架構上的需求演進背后的邏輯,軟件生產與云原生之間的關系,以及網易數帆對未來的思考。

陳諤將云原生軟件生產分為三個階段,包括業務架構微服務化階段、云計算操作系統階段和應用平臺階段,分別以服務治理與監控體系建立、中間件全面融合Kubernetes、應用視圖與運維視圖分離為重要特征。他斷言,云原生的發展已經歷了微服務階段,當前處于云操作系統階段,而應用平臺階段的發展也已經起步并將是未來的發展方向。
云原生的起點:干掉微服務架構的復雜性
微服務階段技術演進的訴求發端于互聯網/移動互聯網的興盛,明晰于微服務架構的復雜性。互聯網時代,業務方需要在高度的業務復雜性下快速迭代軟件。陳諤指出,分而治之是最符合直覺的解決辦法,當時微服務架構也已被提出,但拆分后的技術復雜性是不可忽略的因素,需要和迭代效率放在一起來權衡。 而云計算的出現首先解決了碎片化的計算資源獲取問題,剩下的就基于云計算提供一個技術棧來應對微服務架構的復雜性。

針對上述問題,網易數帆在實踐的過程中逐漸形成了輕舟微服務平臺,包括API 網關、服務治理框架、持續交付服務、全鏈路應用監控和分布式事務等五個組件。其中,持續交付平臺負責調用云計算接口準備計算資源,并將制品發布至云上的各個環境;API網關解決分散的微服務架構作為一個整體應用對外提供接口的問題;服務治理解決服務的注冊發現、以及服務間路由策略的問題;全鏈路監控解決微服務的監控診斷問題;分布式事務中間件解決了服務拆分后事務保障的難題。
高潮:云OS基于K8s整治資源管理,簡化環境維護
微服務大規模應用的后遺癥,就是計算資源的生命周期管理、運行時環境維護復雜以及資源利用率低下等。陳諤舉了兩個例子:一個是大促后彈性資源下線難,將一些節點下線,影響評估是否準確?服務的剩余副本數是否合理?服務是否能自動恢復到目標的副本數?另一個是調整集群調度分布困難,如希望將服務分布在不同的物理節點或邏輯上的服務分組,只能在靜態初始化時做到,一旦后續發生變更就無法很好保障。
容器、Kubernetes的出現使這些問題迎刃而解。容器鏡像帶來了層級化、易于組合/重用的優勢,且管理便捷、可與調度、生命周期管理銜接;Kubernetes則帶來了L1 CMDB,精準維護集群狀態使調度策略變更、故障恢復、擴縮容等生命周期管理相關的操作得以實現自動化,同時還支持業務只需感知Kubernetes API而無需關注IaaS層API。基于此,網易數帆將業務、中間件等負載由Kubernetes支撐,并將微服務支撐能力下沉(即Service Mesh),形成一個云計算操作系統。

陳諤分享了網易數帆云操作系統的三個案例,包括網易內部網易內部的資源利用率優化、高新制造業客戶的多云管理以及企業的軟件供應商環境統一等實踐。(詳情請關注后續視頻回放。)
云原生未來:應用平臺助推軟件生產能力普惠
網易數帆在實踐云OS的過程中也發現了新的問題和新的機遇。
問題是開發人員的技術棧負擔過重,微服務架構的采用使得中心化的運維職責部分(如容量規劃以及調度策略、網絡、存儲配置等)卸載到了研發角色,而研發普遍不擅長處理這些工作,“然而我們認為軟件生產能力的提升不應以技術門檻的提高為代價。”陳諤強調說。
機遇在于統一的運維界面意味著將特定類型應用的運維標準化、自動化的可能性,從開發到運維轉換,作為在軟件生產過程中最具挑戰的環節之一有望得到大幅的優化。
作為云原生的底座Kubernetes一直沒有應用層面的抽象,陳諤認為未來需要將應用的概念分離出來,來降低應用開發人員的認知負擔。當前社區的OAM模型的嘗試,也是網易數帆重點關注的一個方向。
在以應用為中心的方向上,網易數帆希望基于云原生的普及實現軟件生產能力普惠,讓更多的人可以參與到應用開發中來,并擁有良好的開發效率。畢竟當前企業數字化的過程中,IT團隊的交付能力經常成為瓶頸,一些有價值但不是非常核心的系統往往長期處于需求排隊的狀態。
陳諤表示,軟件生產能力的普惠主要是解決開發能力與運維能力這兩方面的問題。開發能力方面通過縮小場景范圍、弱化抽象能力、表達能力,提供所見即所得的編輯能力來降低開發人員的認知負擔,這也是歷史上低代碼平臺類產品常見的策略。
運維能力方面,運維能力的缺失使非專業人員的代碼產出無法融入企業的IT環境成為標準的企業服務,從而僅限于個人或小范圍使用,而云原生的技術使我們可以為應用生成標準的運維配置、策略的描述,并且這些配置在云OS的統一運維界面下普遍適用。
網易數帆的實踐是打造了能與云原生體系結合的低代碼平臺,面向初級開發者,面向信息管理系統類的應用,基于MVVM的模型,但開發者無需理解編程語言的抽象、MVVM框架,網絡,遠程調用等概念,而只需理解業務的數據模型,編寫必要的邏輯,并通過可視化的方式拖拽界面元素實現應用。

陳諤介紹,該平臺設計成能生成符合云原生標準的制品,如容器鏡像與Helm charts,既能在輕舟的容器云中自動部署運行,也能在客戶的Kubernetes集群中部署,簡單應用可以直接通過容器部署。客戶只要有面向K8s的運維機制,無需開發者提供額外信息即可基于制品部署運維,并能兼容客戶運維體系的規范。
客戶需要更高級的能力時,也能以輕舟平臺為云OS來擴展持續交付、自動部署、服務治理、API管理、中間件自動化運維等能力。