國內

首屆 DIVE 精彩回顧丨踐行企業數字化,基礎軟件如何創新

2022-05-07

“墻高基下,雖得必失?!痹跇嫿〝底制髽I大廈的工程中,基礎軟件的重要性不言而喻。但對于各行各業而言,面向傳統經營模式設計的基礎軟件已經難以支撐數字業務的創新,唯有汲取專業團隊的經驗,縮短基礎軟件升級探索的時間,方能排除后顧之憂投入業務和管理的數字化,全心應對全球大環境的風險及行業的不確定性。

2022年04月15日-16日,以“深入基礎軟件,打造新型數字底座”為主題的首屆DIVE全球基礎軟件創新大會在線上舉辦,本次大會由InfoQ主辦,旨在打造基礎軟件領域內容最豐富、最前沿、最具技術性的行業大會,成為基礎軟件領域的風向標。網易數帆的兩位資深架構師,翁揚慧和向東受邀參加本次大會,分別做了題為《網易數帆在混合微服務架構下的統一治理實踐》和《面向未來的分布式存儲設計》的演講,分享了網易數帆在支撐網易業務和服務行業客戶過程中沉淀下來的數字化基礎軟件創新經驗。

統一服務治理破解技術碎片化難題

翁揚慧介紹了混合微服務技術架構的存在背景以及當前面臨的問題,統一治理需要解決的核心問題和難點,提出了遺留歷史業務如何優雅從框架升級至服務網格的思路,分享了網易數帆如何通過產品設計讓微服務統一治理更加優雅。

微服務從最早被作為一種架構設計模式提出以來,至今已經有10多年的時間,微服務技術被廣泛應用在企業的業務架構設計中。從開發框架的技術選型上來看,Dubbo和Spring Cloud是目前主流的兩大Java語言微服務開發框架選型,但仍有一些企業是基于私有的內部框架,甚至有的還沒有完全微服務化。

因為技術的更新迭代,以及業務快速發展,需要引入新的技術來應對復雜的業務場景,導致業務技術架構在演進過程中面臨技術的“碎片化”問題,體現在多個方面:

1. 微服務框架難以統一治理,Java在企業級應用開發中依然占據最大份額,無論是使用Spring Cloud還是Dubbo、gRPC等,甚至是私有的開發框架,都存在服務治理的需求,不同的微服務框架之間如何實現相互發現,如何進行統一治理是很多企業團隊面臨的痛點問題。

2. 異構語言難以統一治理,針對不同業務場景,使用不同的開發語言往往更加能發揮語言特性優勢,例如使用C++開發高性能、低延遲的業務,使用Python開發人工智能、數據分析類應用,這些異構語言應用也需要進行統一的治理,例如提供流量管理、安全控制等能力;

3. 中間件難以統一治理,不同的微服務技術選擇存在不同類型的注冊中心,同時還存在例如配置中心、認證中心,還有多種通用的數據和消息類中間件例如MySQL、Redis、ES、Kafka等,如何進行有效的統一管理,實現云化的高效、智能運維也是業務團隊的訴求之一;

4. 運行環境難以統一治理,隨著云原生技術的發展,從物理機到虛擬機,再到容器化的應用運行環境變遷正在成為一種標準演進路線,企業的業務部署也從私有云、公有云,到混合云的模式發展,來解決資源彈性伸縮、業務容災保障方面要求,不同的基礎環境,也需要在業務層進行有效的屏蔽差異,統一治理。

除此之外,還有一些通用的基礎技術組件、業務部署架構方面需要有更加統一、標準化的設計訴求,體現在不同技術架構中的不同維度、各個層面。而業務研發團隊往往因為要支撐業務發展投入精力在業務開發中,因而存在技術演進過程中帶來的各種技術債務,也是當前企業在數字化轉型升級過程中面臨的痛點。

網易數帆輕舟微服務團隊,在多年的內外部客戶支撐過程中,尤其在微服務和云原生技術領域,積累了大量的經驗和最佳實踐,并且沉淀了一套面向企業級的微服務統一治理平臺。通過業界領先的無侵入式微服務治理技術、雙引擎多模式統一治理、中間件PaaS化管理等來解決企業在架構升級過程中面臨的技術難題,通過提供一站式的微服務平臺控制臺,助力企業用戶以最小的改造、使用成本快速實現業務的統一治理,從而讓業務團隊更加關注于專業領域的業務開發,提升企業整體的研發效率,實現成本優化。

此外,翁揚慧還在本次分享中指出,輕舟微服務團隊近年來,在金融行業做了不少的優秀案例,并且總結沉淀了金融行業經驗。通過提供全站式的分布式技術能力底座,以及兩地三中心、異地多活等業務架構支撐能力,來幫助傳統金融企業實現核心業務的分布式技術改造升級,從而實現去IOE,最終達到全棧技術國產化、自主可控的終極建設目標。

面向未來的分布式存儲設計

向東結合網易數帆開源云原生軟件定義存儲軟件Curve的研發背景、應用場景介紹了分布式存儲架構的最新發展,如何通過合理的設計達成設計目標,存儲優化的細節,以及Curve的發展方向和演進等。Curve是一個分布式的存儲系統,它包含兩部分 CurveBS分布式塊存儲系統和CurveFS分布式文件存儲系統,目前CurveBS已經在公司內部廣泛應用,CurveFS在開發演進當中。

在存儲和計算分離的趨勢不斷發展過程中,越來越多的云上應用依賴存儲與計算分離的架構。存算分離能夠深度優化資源實現計算和存儲資源的彈性擴展,按需分配。Curve就是為了滿足存算分離的需求而誕生的云原生存儲系統,具備高性能、易運維、云原生特點。

網易數帆選擇自研Curve存儲系統主要有三個原因:

1. 缺乏代碼量少自主可控的統一分布式存儲系統,Ceph代碼量達到100W+,要完全熟悉和掌握非常困難;

2. 現有開源存儲系統出現故障時,對上層應用影響大,運維難度高,Ceph采用強一致性協議,會導致系統出現故障時I/O頻繁抖動;

3. 現有開源存儲系統無法提供更高的性能,在通用硬件下滿足核心應用場景的需求。

易運維主要的核心挑戰是如何有效提升系統的可用性以及可靠性,當系統發生故障的時候,既能保證數據的一致性同時也把故障的影響降低到最小。為了達成CurveBS的易運維目標,網易數帆采用了RAFT 協議。使用RAFT協議不僅能保持數據的一致性,同時也能降低寫I/O的響應延遲,它只需要大多數副本復制請求成功返回就可以表示數據寫入成功。

為了提升數據的可靠性,網易數帆在拓撲結構上采用了故障域的概念,同時在數據分布方面使用了copyset算法,來保證當故障發生時,數據丟失的概率最低。當存儲系統在線升級時采用了特殊的客戶端設計來保證存儲系統的在線升級。

要達成CurveBS 的高性能目標,三大板斧主要是降低底層I/O 的寫放大、提升I/O 數據的吞吐率、降低I/O的延遲。網易數帆采用了ChunkFilePool預先創建文件池的方式降低I/O的寫放大,并使用DataStrip數據條帶類似Raid的方式來提升數據的吞吐率,使用zerocopy來降低I/O數據拷貝引起的開銷。

相比于CurveBS 來說,CurveFS需要面臨更復雜的負載以及更多樣化的應用場景,例如:兼顧性能與容量的機器學習場景、快速跨云彈性發布的業務場景、低成本大容量需求的業務、中間件冷熱數據自動分離、S3和POSIX統一訪問需求。

網易數帆的方案是首先在元數據層面保證文件元數據的性能與空間線性可擴展、使用RAFT協議保障在系統故障時的數據一致性和可用性、使用多層cache來提升數據和元數據服務的性能。目前CurveFS已經支持了底層的S3對象存儲,并能對外提供POSIX兼容的文件服務,網易數帆存儲團隊還在優化CurveFS的性能,正在開發支持接入CurveBS塊存儲。

相關文章
  • 歲月肆玖「人民歲月酒」經典版 見證時代中平凡的偉大

  • 北京市科協“星光閃耀京華”科學家精神宣傳專區上線!

  • 持續領跑,白山云蟬聯中國邊緣計算20強

  • 河北魏縣:企業加快復工復產步伐

亚洲专区在线