范式變遷,數據庫服務化時代的到來
我是DBA出身,DBA在前一二十年都是稀缺的崗位。
就在前幾年,我還偶爾會幫助我愛人的團隊安裝配置數據庫。這一兩年她們上了云,就沒找過我了。
還有個事我記得比較清楚,前些年企業面試,只要你懂安裝Oracle RAC,那你就已經是一名中級DBA了,這里說的僅僅是安裝。當時坊間曾傳言,如果有企業找你安裝RAC,那么你可以要1-2萬的服務費。
上面的場景我相信這幾年很少會發生了。
數據庫行業在變得服務化。
就像文字剛開始只有貴族可以使用,現在人人都可以閱讀。 就像以前只有極少數的智者可以寫書立言,而現在到處都是書,「但卻不知道要讀哪一本」。
回到數據庫的場景里,現在任何一位對數據庫「0經驗」的用戶可以通過亞馬遜云的RDS服務、企業的私有云平臺,方便快捷地獲得數據庫。這些云服務、云平臺面向的用戶已經大眾化,并不一定是訓練有素的DBA。
用戶通過web界面,就像使用windows一樣,簡單快捷幾分鐘就可以滿足需求,這個界面隱藏了所有底層的復雜度,它構建在數據庫基礎設施層之上。
這正是我們所做的事:「打造數據庫的基礎設施,讓數據庫基礎設施更簡單」。
借助于服務化、借助于數據庫基礎設施的完善和賦能,在某種程度上人人都可以是一位資深DBA了。
金剛經說,“若見諸相非相,即見如來”,變化的背后是用戶不變的需求,只有透過各種光怪陸離的表象看到本質,才能看得見用戶真正的需求。以前企業雇傭專業DBA、運維人員,購買專業設備,在本地化以資源占有的方式滿足需求。
而現在,用戶只要輕點鼠標,就可以自助式的滿足需求,客戶需求其實從未變化,客戶要的是「如何快速完成任務,而不是資源占有或其他」。
沃趣數據庫云產品戰略
我們熟知的公有云RDS服務、各種(私有的、公有的)云平臺的IaaS & PaaS & SaaS,還有更細分的像FaaS、STaaS等單詞中的S都是Service,是「服務化價值主張」下的原型理念或開發出的具象化的產品。
「沃趣的整個產品戰略已經全面擁抱云」,這是這次發布會我們最想告訴大家的。
云從大的層面,粗略分為私有云、公有云。接下來我的講述也會按照這個結構,花開兩朵,各表一枝。
|私有云產品
我們的私有云產品包含了QFusion數據庫私有云平臺和國產化替代兩條線。
在真正開始介紹產品前,我想先問一個問題:數據庫云的本質是要做什么?或者說,數據庫云到底是要解決什么問題?
如果對這個問題做一個簡短回答的話,那么是「打造數據庫的基礎設施」。
顯然,對于這個回答,需要一個解釋:什么是數據庫的基礎設施?數據庫基礎設施跟數據庫之間的區別是什么?「兩者的核心能力定位完全不同」。
數據庫的主要作用是提供數據的存取服務,為了能更好、更準確、更安全的對數據進行存取,就需要一個強大的數據庫內核,去提供例如事務的ACID、鎖機制、latch機制、緩存機制、刷臟機制、故障后的可恢復機制、查詢優化器等等的能力,這些能力的高低直接決定了一款數據庫的好壞。
數據庫基礎設施層的核心能力是圍繞數據庫提供全生命周期的服務,是「為數據庫打造分布式的操作系統」。
想一想,我們熟悉的操作系統是做什么的?操作系統最為核心的能力就是為「進程提供全生命周期服務」。
例如進程的創建、資源分配、多個進程之間對于資源優先級的編排調度、進程的銷毀等等,另外操作系統屏蔽了底層硬件資源的復雜度,將其抽象為文件設備供上層使用。
數據庫基礎設施的管理對象換成了分布在各個節點上的數據庫,數據庫的創建、資源調度和分配、數據庫的異常監控、高可用切換等都需要基礎設施層來處理。
同樣的數據庫基礎設施層對底層的計算、存儲、網絡的差異性進行屏蔽,標準化為直接可用的資源。
數據庫基礎設施層還要解決很多復雜問題,例如數據庫的RTO、RPO、SLA的保證,CDP能力、容災備份設計等,以將數據庫的不可用時間最大程度的降低、將數據的丟失最大程度的避免、將數據庫的運維效率最大程度的提高等等。
這都是數據庫基礎設施層要做的事,是我們「All in 了10年」在做的事。
基礎設施層提供的能力大部分原廠并不提供或者達不到企業級要求,因為對于他們,有著自己的核心問題要處理。
為什么數據庫基礎設施越來越重要?
隨著數據庫多元化成為趨勢和既成事實,大部分企業已經不能夠對這么多的數據庫進行管理了。
學習dbengine上的數據,全球已經有接近400種較為流行的數據庫了,one size fits all的時代已經過去。數據庫按照類別去看,商業的、開源的各占一半;關系型、非關系型比例差不多3:1,關系型依然是王者。
數據庫多元化是表象和結果,真正催生這個變化的還是業務和時代。有人說我們今天的世界既不是唯物的,也不是唯心的,而是唯數據的。PC、手機、汽車、物聯網、工業互聯網、智能設備、新零售等等都是時代下的新場景。不同的場景,數據的結構不一樣,需要不同類型的數據庫引擎來處理才更高效。
在中國的特殊環境下,國產化是一個最大的變量和趨勢,前有硬件上的芯片斷供,后有軟件上的Oracle斷供俄羅斯的警醒,國內的數據庫市場現在正處在萬物生長的階段。貌似是一塊肥沃的土壤,各種廠商紛紛宣布開始進入數據庫賽道,投資人相信這個賽道肥沃到“插根扁擔也能開花”。
但是數據庫賽道是一個明顯的技術密集型、資金密集型的產業,而且賽道的路徑非常長,相信這種情況一定會逐漸開始收斂,從數百諸侯紛爭的階段,走到春秋五霸和戰國七雄。
隨著數據庫類型越來越多,企業已經沒有能力去管理這么多種類的數據庫了,這些多元化的數據庫背后,「經驗&標準并不統一,橫看成嶺側成峰,遠近高低各不同」。
一位有著豐富Oracle經驗的DBA想要快速成為MySQL專家并不容易發生。這也給我們的產品研發帶來了很大的麻煩,當然也是我們價值所在。
我們幾乎要為每一個數據庫設計高可用機制;為了保證RPO為零,不同的數據庫實現方式也不盡相同,甚至相同的數據庫實現的方式也不一樣。
例如MySQL中可以選擇半同步方式、可以選擇MGR架構等;不同數據庫的備份、恢復上差異性很大;不同數據庫的容災、兩地三中心的實現上各不相同;其余像數據庫的參數配置、數據庫的升級、報警項、報警閾值等都需要仔細為每一個數據庫做好測試和驗證。
基礎設施的重要性也在于此,希望可以通過我們的努力,屏蔽這些差異性和復雜度,提供給用戶“整齊劃一”的統一服務。一個沒有在數據庫領域深耕過的企業想要做到這一點非常困難。
另外更為重要的,好的數據庫基礎設施必須要有大量的實戰環境的錘煉。回頭看我們的產品,也正是經過了數百個客戶的真實場景的錘煉才一點點進化出來的,并非完全是靠頂層設計出來的。
所謂專家,是在一個極小的領域內,犯過了所有可能能犯的錯誤的人。產品也是這樣,一個個真實的問題和故障,甚至一個個來自客戶的”刁難“,是讓產品保持進化的秘方。
一定程度上說,「產品也是演化出來的,而不是規劃出來的」。
|QFusion數據庫私有云平臺
QFusion 是我們做的一款數據庫私有云產品,專注于PaaS,不帶云底座,這讓產品具有了最大的開放性,客戶的裸金屬可以成為我們的底座、各種私有云平臺可以成為我們的底座、各種容器云可以成為我們的底座。
「開放性」是QFusion這款產品最重要的氣質,我們希望通過打造最為開放的產品,發展上下游生態,使QFusion成為真正的數據庫基礎設施。
目前,QFusion已經和超過20家的私有云平臺完成了產品集成,支持了所有主流的數據庫,可以在x86、arm上運行。QFusion的開放性還體現在它可以跟用戶的租戶、權限體系進行對接、可以跟用戶的云平臺進行對接。
QFusion之上的每一個數據庫,對,是每一個,我們都提供全生命周期管理能力。全生命周期是一個被高頻使用的詞匯,這里要特別強調一下,「QFusion是真正的全生命周期」。
國外有一家公司叫bitnami,它的產品挺有意思,它的網站上提供了數百種應用的快速部署,但是部署之后的事,它并不提供服務,當時我第一次體驗這個產品時,很是驚訝,因為我們一直以來的思路就是每增加一個對數據庫的支持,就要配套一堆的產品功能,這往往需要比較長的研發和測試周期,直到遇到了bitnami我才知道原來還可以這樣玩(* ̄︶ ̄),目前它已被vmware收購。
我們這樣的認知,跟我們一直服務客戶的畫像有關系,都是大B企業,這些企業對于數據庫基礎設施層的能力要求都是企業級的,部署僅僅只是第一步,后續的RTO、RPO、SLA的保障等等能力都至關重要。
管理類產品的缺陷是什么?
目前的QFusion采用的是沃趣自研的第二代技術架構,第一代(產品叫QMonitor)整個技術架構層比較落后,算是一個管控類的產品,后來因為遭遇了各種各樣的大的、小的問題,我們終止了迭代。
總結第一代產品的失敗,這里說二點最為重要的原因:
「過于發散,不標準化」一次我們去深圳跟客戶交流,他們使用MySQL不到兩年的時間,數據庫的架構有主從、雙主、Galera、MGR,各種架構的數據庫版本也不統一;高可用的切換有自己寫的腳本,有開源的;操作系統的類型和版本也是參差不齊;各個數據庫的配置標準化、參數標準化、是不是都備份等就更不用說了,他們希望我們的產品可以納管他們的環境。
這是管控類產品經常遭遇的典型場景,產品為了兼容用戶千差萬別的環境,導致產品穩定性堪憂。 A用戶用的很好的高可用腳本,在B用戶為什么就不工作了? A用戶的故障解決后,B用戶無法復用這一紅利,因為B用戶沒有這個場景。
產品經常就陷入在這些問題中,深一腳、淺一腳的往前走,隨著版本的迭代,產生了越來越多的版本分支、patch。
做大而全很容易,做少而精很難,全面的東西是平庸的。對于管控平臺來說,如果不能克制自己做多的欲望,產品都是被“加法”作死的。
QFusion是「不破不立」的,即需要把用戶的老系統遷移至新平臺,QFusion并不對老平臺進行納管。我們做商業決策,選定一種戰略,其實都是trade-off,都是取舍。我們相信做出這個取舍帶來的好處是長遠的、值得的,這代表著數據庫整體環境將是標準的,經過極大收斂的。標準意味著更少的運維,更少的故障,更少的投入。
用戶可以通過循序漸進的方式,一點點的把老系統下線、遷移至QFusion,這個也是我們現有客戶普遍采用的方式。另外,我們通過發展生態(跟用戶現有的各種私有云平臺可以原生集成)、提供便捷的遷移工具,將“破”的代價降到最低。
而傳統的納管類平臺不是這樣,他們雖然可以對現有環境進行納管,但是會出現“一千人眼里有一千個哈姆雷特”的慘狀,由于環境不標準帶來的穩定性差、運維成本高、成本投入高等問題,會像個幽靈一樣不斷反復出現,就像是你買房使用了按揭的方式,需要忍受漫長的分期之“痛”。
往往買了管控產品的企業,也「無法在公司內部推行標準化戰略」,因為既然給大家開了一個非標準化的“口”,這個口就會長期存在并合理化。
「沒有資源池化的能力」云最重要技術特性,如果只說一個,那應該是資源的池化。在我們第一代的產品里,用戶如果需要申請數據庫,還需要去選主機,因為我們當時的技術并沒有對后端的資源進行池化,還是管控的思路,但是到了云場景,用戶可能是業務人員,并不知道把數據庫放置在哪個主機比較合理,這個能力應該下沉到平臺層,由平臺層進行資源編排和調度。這是大部分管控類產品的缺陷,面向管理員而非普通用戶。
引入云原生技術棧到數據庫場景
總結第一代管控類產品的本質,可以說是面向DBA,做到了運維經驗的代碼化,將數據庫的經驗不斷地沉淀到平臺層,消除掉人員服務的差異性帶來的各種問題,通過平臺層來處理遇到的各種問題。
第二代產品我們「從0重寫了整個技術棧」,命名為QFusion,這一代產品除了運維經驗代碼化之外,真正解決了上一代產品的最核心的兩個問題:「資源的池化」以及「產品標準化」。
基于池化的設計,用戶只需要提交需求的規格,例如多少CPU、多少內存、多大容量,不需要關心后端資源的情況,平臺通過調度算法來決定將新的數據庫放置在哪臺機器之上,如果發生了故障,調度算法也會自動把服務切換到資源空閑的機器上。
運行在QFusion之上的數據庫將都是標準的,在以前用戶的環境中,可能100套庫,存在著50個配置、10幾種架構、n種實例規格,通過QFusion可以極大收斂這種情況,真正做到標準化。
最重要的,在技術上我們引入了全新的云原生技術棧到數據庫場景中,借著「K8S & 容器」技術的賦能,讓我們可以聚焦于業務本身的開發。任務的編排調度等都可以交給K8S來完成,而之前這些工作不但我們要做,而且穩定性差Bug百出。
此外容器作為輕量級的虛擬化技術,為數據庫這種性能敏感型的場景也帶來了紅利,這個紅利一句話總結就是:性能好、整合密度高、遷移性好(跨平臺、混合云、多云場景下)。
QFusion的商業化策略
QFusion的商業化策略目前主要有三種方式。
一是傳統的通過沃趣自有銷售團隊進行直銷,這是沃趣十年來駕輕就熟的方式。
二是PaaS+的集成策略,QFusion的形態為PaaS,并不自帶云底座,通過發展生態,跟私有云、容器云、服務器等廠家進行產品集成,由他們來提供底座。
我們專門成立了產品戰略部以積極的發展生態,在私有云的場景里,很多用戶都需要產品能與他現有的產品或流程可以集成。這也是我們的優勢所在,我們除了提供標準化產品,我們還可以跟用戶的流程、權限、現有平臺之間進行對接。經過我們一年多的實踐,已經具備了豐富的集成經驗。
相較于公有云場景中這種標準化的服務,在私有云場景中存在大量場景需要跟用戶本地化環境進行對接和適配,如何將集成的工作進行歸納和抽象,最后提供標準化的服務,將會成為私有云產品的競爭優勢。
在跟私有云生態上的集成方面,我們目前已經完成了跟華為、ZStack、浪潮云、華云等數十家生態的產品集成。
集成戰略也是以「用戶第一」為考量而做出的選擇。因為大部分的用戶或多或少都已經購買了私有云平臺,如果QFusion能原生的跟這些平臺進行集成或兼容,那么將大大降低用戶的使用成本和遷移成本,再結合沃趣的數據遷移工具,將最大程度的降低用戶使用新產品的成本。
同時對生態合作伙伴來說,QFusion也能幫助他們完善其云能力。數據庫基礎設施是一個非常復雜、專業的領域,沃趣投入了「數百人、十年、All In」,這個成本對于大部分云廠商來說,還是太大了,不如選擇跟專業的數據庫私有云廠商進行集成,做能力整合。
中國移動公有云是QFusion目前服務的最大規模的客戶,它就是通過集成的方式,目前運行實例數超過50000,移動云RDS背后的MySQL、SQL Server、TiDB、MariaDB的PaaS能力由QFusion提供。這個場景讓QFusion經歷了大規模場景的考驗。
三是互聯網化的方式。我們已經發布了irds.cn網站,推出QFusion的社區版,目的是擁抱運維和開發人員,希望我們打造的基礎設施,可以以最短的路徑讓運維和開發人員收益,成為他們日常開發工具的一部分。
這種產品推廣方式對我們來說是一個很大的轉變,因為不管是直銷和集成,面向都是企業高管或者關鍵決策人而非最終用戶。而網站的用戶畫像直接切換到了運維、DBA和開發,他們代表著一線和上游,是產品的最終用戶,這對我們是一個新的嘗試。
這里做一個暢想,那就是「希望每一個運維和開發人員可以把QFusion作為日常的工具去使用,那就是我們最驕傲的事情」。
另外,QFusion已經開始支持訂閱模式,跟傳統的軟件買斷+維保的模式不同,訂閱模式前期投入少,越來越多的用戶開始接受這種模式。
|國產化替代產品
在數據庫私有云產品系列中,國產化替代產品是我們在創立之初就開始投入的,已經有10年的時間,十年的時間里,有兩件事我們做了最大程度的努力,一個是性能,一個是穩定性。
QData系列作為國產化替代產品中的拳頭產品,復購率達70%以上,有一句話是形容最好的朋友的:“既有乍見之歡,還無久處之厭”。最好的產品也是這樣,復購率最能代表用戶使用產品后的滿意度。
十年的時間里QData在市場獲得了一個標簽:性能怪獸,代表了它在性能這個場景里可以神擋殺神,佛擋殺佛。不過關于性能我今天在這里并不想再說什么,我想談談穩定可靠方面我們做的一些重要工作。
「面向失敗的架構設計」 在設計之初,就認為每一個組件都可能失敗,基于這個設計,需要去配套完善的自動切換和接管機制以及冗余機制。
「工單數據的挖掘」 在產品迭代上,我們非常重視對于售后工單數據的挖掘,對于每一次的產品問題處理,這些數據都會被記錄到工單平臺中,產品會對每一個工單進行分析和挖掘,最終對產品進行迭代和完善。產品的進化在這個維度上變得非常有意思,經常不是你有一個藍圖然后一步步設計出來的,而是不斷的根據問題和反饋迭代出來的。
「穩定性測試體系的建立」 在分析工單數據過程中,我們發現了很多問題是因為產品測試出了問題,為了從產品上游解決問題,我們開始建立產品的穩定性測試體系。
「新技術應用上的保守和克制」 對于新技術的學習和研發我們始終在行業里走在了最前面,例如我們最早支持NVMeoF協議,我們最早支持RoCE、透明壓縮,我們最早推出了專門針對數據庫的CDP備份一體機,但是對于新技術的應用我們始終堅持保守和克制,不會輕易在生產環境使用,會通過多個客戶的POC以及經歷了疲勞性測試后才會有選擇性的在邊緣類場景用起來,成熟后再進行推廣和復制。
「軟硬協同」 軟硬協同給大部分人的印象是性能的飛躍,但是還有一個重要的作用是可靠性,只有軟硬一體經過長時間驗證的產品才能確保最佳的可靠性,大量的故障都是由于兩者不能適配產生的。
「原廠交付」 為了將產品的穩定性達到最優,我們在產品的交付方面也始終堅持原廠交付而非外包,這塊對于我們是一個比較大的成本,但是從長遠來看,會成為產品競爭力的一個保障和來源。企業級客戶除了產品,其實非常看重優質的服務。我曾經跟我們公司的top sales聊天,我問他,你覺得你能把產品賣的好,除了產品本身外,最重要的銷售素質是什么?他說:「銷售素質不重要,最重要的是我們的優質服務,隨叫隨到」。他所言非虛,有一次一個上海的客戶有問題,他在疫情的情況下頂風作案,拉著一車人過去給客戶處理問題。因為這次的事件,壞事變好事,充分贏得了客戶的信任。
QCP云管平臺
為了能給用戶提供統一的數據庫私有云服務,我們將國產化系列產品和QFusion私有云管控端進行了整合,給用戶提供一個統一的服務入口-QCP云管平臺。
|公有云產品Squids
接下來說一說我們在公有云上的新產品Squids,這是我們在公有云上提供的數據庫服務,專為公有云打造的數據庫基礎設施。目前它能提供阿里、騰訊、華為、亞馬遜、微軟、谷歌 6朵云上的 MySQL、Redis、ES、MongoDB、ClickHouse 5種數據庫服務。
云在剛出現時,各個云供應商以IaaS的資源供應為主。但是隨著云的發展,它們在一步步地突破邊界、攻城略地,PaaS、SaaS業務也就理所當然的做起來了。
伐冰之家,不蓄牛羊,我們對未來的判斷,云廠家還是會回歸于IaaS基礎設施,之上的部分逐漸歸屬到各個生態。當然這里面不是黑白、0&1的關系,云廠商一定還是會去做部分的PaaS、SaaS。
站在當下的時點往回看,有些以往發生的事現在可以看的清晰一些了。我說幾個標桿性的事件來回顧一下。
「MongoDB」
最開始是作為一家文檔型數據庫供應商,從2016年開始,已經發布了云端的Database as a service的多云服務-atlas,這真的是一家響應時代需要、勇猛精進的公司,相對于MongoDB,Oracle就顯得過于刻舟求劍了。atlas目前的營收占到了mongodb收入的一半左右。各個云對于atlas來說,都是資源,是無限的、可彈性伸縮的、按需使用的資源。
「Snowflake」
一家提供data warehouse as a service的公司,創業不到十年,提供的是數據倉庫的多云服務,目前估值700億美金左右,一度比IBM這個百年老店的估值都高。傳統上,我們的認知是企業更愿意為在線交易系統付費而不是數倉,因為TP型業務在為企業真正在創造營收,但隨著大數據、智能化時代的到來,數據的分析變得越來越重要,數據已經成為這個時代的第五生產要素,這個重要性從snowflake 700億美金的估值上也可見一斑,這個市值是mongodb的接近3倍。
「Aiven」
一家提供data as a service的數據服務的初創公司,目前估值20億美金。同樣的,它基于公有云的IaaS資源,搭建企業級的數據服務。它做的業務跟我們更為相像。
各個云廠商目前基本都提供了marketplace,這個作為開放的云市場的入口,引入生態,這些生態所提供的云服務,很多云廠商自己也有,一方面云廠商不得引入更多的生態以增加平臺競爭力贏取客戶,另一方面,他們可能更在意的是:客戶的消費!消費!消費!讓他們的客戶愿意在它的云上消費,才是真正的大戰略。
當下,公有云上的基礎設施已然完善,我們也必須躬身入局,基于新的基礎設施,考慮做一些事。
在今年的3月份我們發布了Squids,基于公有云基礎設施提供數據庫RDS服務,或者叫DBaaS服務更準確。
我們在研發Squids之前已經習慣了用本地數據中心資源來打造產品,我們對于SSD、服務器、IB等等如數家珍,但是到了公有云,以后的程序員去編碼和開發的時候,已經不會像我們以前,看到的是CPU、硬盤、網絡,他們面對的是云上的EC2、S3等的api接口,編碼的底層發生了巨大的變化。
我們需要認真學習云端的產品,好在云端基礎設施、文檔都非常完善,雖然產品類目阡陌縱橫,但是非常的服務化,學習成本并不高,我們要做的是把我們對于數據庫的經驗重新用公有云的方式再做一遍。
獨木成林的產品體系
產品總是在特定時間、特定技術下推出的,都具有明顯和不明顯的缺陷與原罪,好在我們并沒有刻舟求劍待在原地,我們一直在跟隨大環境做產品的優化,通過連接新的基礎設施、新技術、新理念來積極適應時代需要。
我把沃趣的產品體系總結為:獨木成林,雖然我們有著看似豐富的產品,但是他們有著一以貫之的邏輯,都是圍繞數據庫來打造最適合時代的基礎設施,就像內蒙秋天的白樺林,一眼看上去蔚為壯觀,但是其本質是簡單的。
相信未來的很長時間,我們都會保持聚焦,弱水三千只取一瓢。
(文章整理自《行業首發——沃趣中立企業級數據庫云產品版圖》 —— 沃趣科技CTO 魏興華)