本文分享自華為雲社群《華為雲GES:十年磨一劍,打造業界一流的雲原生分散式圖資料庫》,作者:GES圖引擎服務小圖 。
圖資料庫(graph database)是一個使用圖結構進行語意查詢的資料庫,它使用節點、邊和屬性來表示和儲存資料。該系統的關鍵概念是圖,它直接將儲存中的資料項,與資料節點和節點間表示關係的邊的集合相關聯。這些關係允許直接將儲存區中的資料連線在一起,並且在許多情況下,可以通過一個操作進行檢索。
圖資料庫強調資料之間的關係。查詢圖資料庫中的關係很快,因為它們永久儲存在資料庫本身中。可以使用圖資料庫直觀地顯示關係,使其對於高度互聯的資料非常有用。因此圖資料庫廣泛應用在網際網路、知識圖譜、金融風控等需要挖掘深度關聯關係的場景。
「到2023年,圖技術將促進全球30%企業的快速決策場景化。需要圖還是不需要?這已不再是個問題,一定是需要」,Gartner公司副總裁、傑出分析師Mark Beyer講到。
雲原生圖資料庫從名字看是從雲原生和圖資料庫概念發展而來的。而云原生的概念通用意義上可以理解為應用以服務化或雲化的方式提供給使用者。此類雲原生圖資料庫是在雲基礎架構之上進行構建的,圖資料庫元件在雲基礎設施之上構建、部署和分發。這種雲原生屬性是它相比於其他型別圖資料庫最大的特點。作為一種雲平臺,雲原生圖資料庫以 SaaS(軟體即服務,Software-as-a-Service)的形式進行分發。
從上圖的圖資料庫VS圖資料庫on雲伺服器VS雲原生圖資料庫的對比圖我們可以看到:雲原生圖資料庫因為具有即開即用、穩定可靠、管理便捷、彈性伸縮等優點,可以幫助使用者減少圖資料庫總擁有成本(TCO)和運維工作量(O&M),使用者可以將主要精力聚焦在核心業務上。
華為雲圖引擎服務(GES)是一種基於華為雲基礎架構和平臺的線上資料處理圖資料庫,提供即開即用、可延伸且完全託管的分析型圖資料庫服務。作為擁有自主智慧財產權的分散式原生圖資料庫和圖引擎產品,提供一站式的圖儲存、圖查詢和圖計算能力,支援業界標準圖查詢語言cypher和gremlin,同時支援30+高效能演演算法,覆蓋多場景分析計算,具備10+圖神經網路和圖嵌入演演算法。廣泛應用於網際網路、政務、安平、稅務、電力等行業,為客戶的輔助決策、降本增效等提供專業、高效的服務。
從2013年預研到2015年GES核心Eywa研發內部立項再到現在,整十年的發展過程中,華為雲GES始終保持高強度研發投入,已經碩果累累。GES同時提供與HCS8.X、HCSO配套的混合雲版本。從2017年底華為雲正式公測,到目前上線華為雲國內站10+站點,海外新加坡、俄羅斯、阿聯酋、愛爾蘭、南非等站點,馬電、法電等合營雲站點,服務海內外幾十家客戶,目前呈現多點開花的局面,顯示出GES強大的產品競爭力。
十年磨一劍,GES作為國內最早釋出的雲原生分散式圖資料庫,「雲原生」優勢主要體現在如下幾個方面:
GES是完全託管的線上圖資料庫服務,後臺會為每個最終租戶建立與之對應的資源租戶,部署GES需要的計算、儲存、網路等資源,均通過資源租戶發放,使用者只需通過GES提供的Portal介面或者API存取圖資料庫即可,無需關注圖資料後臺的底層資源。GES提供了7*24小時oncall,如果這些資源發生故障(比如所在的物理機故障),oncall會立即感知到並處理,整個過程使用者無需操作,使用者省心又安心。
針對部分使用者希望感知到圖資料庫後臺資源(比如CPU、記憶體、磁碟等)以及圖資料庫關鍵指標(響應時間、容量佔用等)的訴求,GES針對每個圖範例也對接了華為雲的CES服務,使用者可以在CES介面檢視到GES的監控指標,並對關注的指標設定告警,一旦監控值超過閾值,可以及時通知到使用者。
GES提供了線上對圖範例進行擴容、擴副本的能力,實現資源動態擴充套件。
擴容操作一般發生在容量不足的場景,比如初始階段申請了一億規格的圖範例,後期隨著業務的增長需要擴容到十億規格,可以簡單通過介面點選完成,整個擴容過程業務不中斷且支援從小規格一次性擴容到任意的大規格。
擴副本操作一般發生在並行效能有更高要求的場景,比如初始階段申請了一億規格的圖範例,預設GES是提供一主一從兩個副本部署方式,後期隨著業務的增長對QPS有了更高的要求,可以擴容成一主多從多個副本。擴副本整個過程可以簡單通過介面點選完成,整個擴副本過程中業務不中斷,且支援一次性擴容多個副本。
GES圖範例的版本支援線上升級,使用者只需要在介面點選即可升級到最新版本,新版本可能是新需求上線、漏洞修復(包括開源軟體或者作業系統)、Bug修復等。升級過程由使用者觸發且不收取任何費用。
GES當前版本釋出週期在1個月左右,也就是說使用者的新需求最快可以1個月之內上線。GES新版本上線後,使用者通過升級即可滿足新需求。藉助華為雲內部強大的版本釋出系統,針對嚴重阻塞使用者的問題,GES能夠做到24小時修復。比如2021年Log4J爆出的「核彈級」漏洞,GES在24小時之內完成了新版本上線,上線後用戶快速升級即可完成漏洞修復。
GES範例採用一主多從架構,主從切換業務不感知,使用多副本機制保障高可用。支援跨AZ容災,單機房故障不丟資料、不中斷業務,RTO秒級。
圖範例支援手工備份和自動備份兩種備份方式。手工備份使用者可以在介面點選觸發,一般用作重大變更(比如升級或者資料清空)前生成一個資料快照,如果變更問題可以及時將資料會退到該快照。自動備份是圖資料庫內部的行為,為資料可靠性服務。如果伺服器發生宕機,GES後臺會通過自動備份和寫紀錄檔,快速進行資料恢復,確保資料不丟失。
GES範例支援跨AZ部署,使用者只需要在發放圖範例時勾選上啟用跨AZ即可,無需額外費用。主從叢集資料跨機房存放,實現單機房故障不丟資料。業務計算資源跨機房排程,單機房故障不中斷業務。且在正常情況下,計算和資料在資料中心內部互動,減少機房間頻寬消耗。
如上面所講,GES是完全託管的服務,使用者的備份資料是儲存到資源租戶的OBS桶上面,針對部分使用者資料密級較高的場景,GES提供了基於KMS服務的資料加密方案。
GES加密儲存的客戶資料包括兩種:
1、客戶原始資料:支援建立的後設資料檔案儲存到OBS上時加密。
2、匯入到圖系統裡面的資料:
(1)String型別的屬性會儲存到雲硬碟EVS,支援對EVS加密。
(2)增量備份、全量備份會備份到OBS/HDFS,支援對增量備份和全量備份的加密。
GES提供了基於KMS服務的資料加密方案,如下圖所示:
站在管理面視角:
❶租戶管理員登入華為公有云後,在GES Console上申請建立加密範例;
❷ GES Service接收到建立加密範例請求後,向KMS Service申請主金鑰和叢集金鑰,並生成資料庫金鑰下發給GES核心;
❸ GES業務範例在初始化時載入金鑰,並加密儲存。
站在資料面視角:
❹客戶匯入點、邊資料集、Schema檔案,支援這些資料儲存在OBS時使用KMS加密;
❺ 若使用者建立圖備份,則在記憶體資料加密後生成備份資料並儲存到OBS;若使用者從備份恢復圖,則從OBS下載備份資料,然後解密後載入到記憶體。
GES提供多個特性來保障租戶圖範例的可靠性和安全性,例如VPC、安全組、許可權設定、SSL連線、手動/自動備份等,如下圖所示:
在企業生產裡面,許可權控制尤為重要。例如,在公司裡面,HR部門才能看到績效、級別等資訊;財務部門才肯看到賬號、轉賬等資訊;而其他資訊公開,公司內所有員工都可以看到。
GES圖範例提供了介面化的細粒度許可權控制,可對特定Label的特定屬性設定遍歷(traverse)、讀、寫許可權。適用於企業對不同部門的許可權設定,並對使用者組進行授權,許可權模型如下圖所示:
過載,是服務或應用處理的請求超過了自身所能承載的能力,造成服務或應用自身處理請求時延變慢、錯誤率增加,或者請求失敗,乃至服務中斷。GES圖範例內部整合了過載控制元件,提供了流控、降級、熔斷等機制幫助業務實現過載保護。
GES按需地為每個圖範例預置了系統CPU、系統記憶體、應用JVM記憶體、應用連線數、應用任務阻塞數等5種過載指標,確保整個系統不會被惡意或者無意的瞬時高並行容量沖垮。而且一旦發生過載,GES還可以根據使用者訴求設定降級策略,確保這一異常情況下使用者的核心業務核心API不受影響。
針對不同客戶對雲形態的要求,GES提供 HCS、HCSO、華為雲等多種雲形態的版本,配套HCS8.X和HCSO 23.3.0、23.9.0等版本,方便使用者選擇不同場景下的雲服務。