數字化轉型進入深水區,云原生在行業落地應用隨之深入,中間件與此相應的進化也成為了時尚。在企業級云原生中間件技術實戰中,除了中間件本身,還涉及分布式基礎、Kubernetes、高可用、擴展性方、穩定性、可觀測性等一系列技術,以及Golang編程語言,挑戰巨大。
近日,網易數帆云原生首席架構師馮常健接受InfoQ《極客有約》直播訪談,結合輕舟中間件研發及業務實踐,深入解讀了云原生中間件技術進化的路徑、難點解決和應用心得,如研發代碼量如何降低80%,網易云音樂 Redis資源成本如何節約 30%+,以及可觀測性的探索等。本文整理了此次訪談中尤為精彩的核心觀點,供關注中間件云原生化的讀者參考。
云原生中間件的本質:運維經驗和能力的沉淀
1、運維標準化:一方面重新定義了傳統中間件運維人員的工作界面,使得基礎能力下沉到Kubernetes,大量常規運維操作被抽象成Kubernetes上的一個個資源定義,對于運維人員來說,擴縮容和遷移重建、故障恢復等高頻操作都可以通過kubectl統一操作,極大降低運維門檻和工作量,標準化的好處;另一方面云原生化的中間件天然能夠進行跨云跨異構基礎設施的部署交付,用戶體驗保持極致一致。
2、其他一系列的高可用、穩定性、擴展性、易運維特性都是建立在這樣的標準化之上的。
不同類型中間件的云原生路徑
我們對中間件的定義是說連接業務應用和操作系統的系統軟件,一般都是帶點狀態或者微狀態的。云原生中間件一般是指構建在Kubernetes平臺上的中間件,包括中間件本身及其配套的管控系統。不同中間件的云原生形態有相同的通用基礎框架,包括:
1、Kubernetes的Operator框架以及Operator托管平臺OLM,負責中間件集群的生命周期管理。
2、Kubernetes上資源管理和調度:CPU、內存、磁盤。
3、使用中間統一訪問入口:基于headless-service和service的內部訪問;基于LB或者Nodeport的外部訪問。
4、通用彈性擴縮容,實例遷移、動態配置等。
5、要實現更高層次的高可用,比如多機房,多集群,依賴像擴展調度系統和集群聯邦這樣的組件等。
6、建立在云原生平臺上的可觀測性,包括監控告警、日志采集、事件管理等。
各中間件因為本身對資源依賴不同,集群拓撲管理不同,所以在通用基礎框架下,云上實現和管理各不相同,其內在的運維管理方式,需要在通用基礎框架之上進行擴展。
網易數帆云原生中間件發展歷程
注:為行文、閱讀方便,數帆及其前身統稱為“網易數帆”
云原生中間件與2012 年PaaS中間件云化、2015 ~ 2019年容器化&在線業務網格化一脈相承:
a)2019年,基于 Operator 實現基礎中間件的生命周期管理,以及擴縮容、遷移、監控、動態配置參數、故障恢復、單集群多機房高可用等。
b)2020年,多集群架構的高可用,國產化軟硬件平臺適配,包括主流ARM架構和x86架構國產芯片和國產操作系統。
c)2021年,穩定性巡檢產品化,兩地三中心和多活能力建設。
總體來說,先滿足最基本的中間件管理需求,實現對虛機PaaS中間件的替換,并通過Kubernetes跨機房實現中間件多機房高可用。再把長期運維和DBA經驗產品化,形成了與傳統中間件平臺的差異化能力。然后完成應用單元化架構需要的中間件多活能力支持,幫助業務實現容量的水平擴展,提升業務容災能力。
采用多集群架構雖然極大增加架構復雜性,但是收益也非常明顯。
云原生中間件研發的核心經驗
高性能方面包括:多種負載均衡模式,代理層、快速擴縮容,本地盤,參數級調優;穩定性方面包括:合理的資源利用率、Operator自愈、可觀測性、穩定性巡檢、混沌測試。
例如,當中間件集群因為各種不可預料的原因宕機時,Operator會快速檢測到集群健康狀況,并且立即進行修復,因此云原生中間件集群具備極強的自愈能力。
運維穩定性管控產品的底層邏輯
云原生化中間件平臺的優勢在技術供給方式發生變化。穩定性問題不解決,無法體現平臺優勢,只是責任的轉移而已;真正實現復雜度降低的是配套穩定性治理,主要包括穩定性巡檢和異常事件監控及根因分析。運維經驗的沉淀和復用是云原生的天然優勢,我們希望通過運維穩定性管控產品,一是將我們內部多年的“運維經驗”沉淀到系統,為用戶提供監控、告警的最佳實踐,可能的根因判斷與處理建議等,二是建立“穩定性改進循環”, 不斷進行經驗沉淀和規則迭代。
云原生中間件在企業落地進展
一些大型國有銀行和頭部股份制銀行早在2019年開始探索并實踐有狀態應用的容器化,目前已有一定線上應用規模,更多的證券、銀行也在2021年開展試點項目。
以某股份制銀行為例,遇到問題有基礎技術能力重復建設,中間件運維效率低,應用系統健康度、接口調用、異常等缺乏自動化的量化和全鏈路能力,實時預警能力需要進一步提升。為此,該行與網易數帆合作建設云原生基礎技術支撐平臺,涵蓋緩存、代理、消息、注冊中心等基礎技術能力服務化,并提供統一的文件服務、全鏈路監控、日志查詢等基礎服務。
其收益是:建設服務化的云原生中間件平臺,避免在基礎技術能力上重復建設、各自維護帶來的人力成本增加、研發效率受限等問題,為所有應用系統建設提供按需使用、靈活伸縮的能力,使得應用系統在建設中僅需關注業務需求的實現,從而大幅提升應用交付效率,提升應用大規模擴展能力。
核心經驗是:一要有能力保持運行穩定,二要適應現有組織和IT流程。
云原生中間件未來發展趨勢
第一,一切中間件都可以云原生化,中間件云原生化的成本要降低。
第二,輕舟中間件研發將跟隨云原生趨勢:
1、多集群架構擴展到多機房/多云基礎設施。
2、和金融客戶一起做多活,幫助業務實現容量的水平擴展,同時提升容災能力。
3、網格化——目前還沒有特別實際的生產場景,但是它描繪的愿景非常美好。
此外,往小說,實現更多可以支撐微服務架構的中間件云原生化;往大說,希望基于開源開放的技術棧,助力我國實現對核心中間件的國產化。