丁海驁
云計算的出現(xiàn),不僅改變了整個IT基礎(chǔ)架構(gòu)的走向,而且也大幅降低了企業(yè)應(yīng)用程序開發(fā)的專業(yè)化程度,讓圍繞企業(yè)業(yè)務(wù)展開的全新應(yīng)用程序開發(fā)在短時間內(nèi)完成成為可能。
2021年底,IDC發(fā)表的年底報告預(yù)測:到2024年, 數(shù)字經(jīng)濟的發(fā)展將孕育出超過 5億個新應(yīng)用/服務(wù),這與過去40年間出現(xiàn)的應(yīng)用數(shù)量相當(dāng)。也就是說,越來越多的企業(yè),會圍繞自身的業(yè)務(wù)需求,自行開發(fā)更多的全新應(yīng)用程序。
“簡單來說:數(shù)據(jù)庫是應(yīng)用程序的血液,也是企業(yè)底層架構(gòu)的電力供應(yīng)。因此,數(shù)據(jù)庫產(chǎn)品在企業(yè)應(yīng)用程序開發(fā)階段,應(yīng)該保證能夠讓用戶很容易上手;在應(yīng)用程序成功開發(fā)和推廣之后,數(shù)據(jù)庫應(yīng)該能夠很容易實現(xiàn)擴展,并始終保持高可用性——完全不需要用戶對其進行任何復(fù)雜的技術(shù)層面的重新架構(gòu)調(diào)整?!盡ark Porter,MongoDB首席技術(shù)官,這位在數(shù)據(jù)庫領(lǐng)域工作了35年的資深技術(shù)專家,在2022年全球用戶大會一場針對中國媒體的在線分享會上,回答筆者提問時強調(diào):沿著從網(wǎng)絡(luò)、存儲、服務(wù)器、操作系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)到應(yīng)用程序的企業(yè)典型IT架構(gòu)來看,對于企業(yè)用戶而言,與應(yīng)用程序開發(fā)最密切相關(guān)的是數(shù)據(jù),而與數(shù)據(jù)最直接發(fā)生關(guān)聯(lián)的就是數(shù)據(jù)庫。因此,是否采用低門檻、高效率、強擴展性、高可用性的數(shù)據(jù)庫產(chǎn)品,將直接決定著企業(yè)用戶能否更快速地面對變化做出響應(yīng)的關(guān)鍵。
“MongoDB是一款與眾不同的數(shù)據(jù)庫產(chǎn)品,它提供了一種最快和最可預(yù)見的寫應(yīng)用程序的方式?!盡ark Porter說:現(xiàn)在有來自制造業(yè)、金融業(yè)、電子商務(wù)、游戲……以及很多其他垂直行業(yè)的客戶都加入和選擇了MongoDB。
作為開源非關(guān)系型數(shù)據(jù)庫的代表,MongoDB公司于2007年在紐約成立,產(chǎn)品于2008年開源。
非關(guān)系型數(shù)據(jù)庫出現(xiàn)的背景,與整個社會的數(shù)字化進展不斷推進密切相關(guān):當(dāng)包括企業(yè)在內(nèi)的各種社會組織對數(shù)據(jù)、尤其是包括文檔、圖片、報表、視頻、HTML等各種非關(guān)系型數(shù)據(jù)的依賴程度越來越高,而傳統(tǒng)關(guān)系型數(shù)據(jù)庫只能管理結(jié)構(gòu)化數(shù)據(jù)(最簡單的關(guān)系型數(shù)據(jù)庫可以理解成微軟的Excel),于是,針對非結(jié)構(gòu)化數(shù)據(jù)的非關(guān)系型數(shù)據(jù)庫就越來越重要了。
一般來說,在技術(shù)領(lǐng)域有一個共識:非關(guān)系型數(shù)據(jù)庫可以按照存儲邏輯,分為以鍵值對形式存儲的非關(guān)系型數(shù)據(jù)庫、搜索型非關(guān)系型數(shù)據(jù)庫、基于列式存儲的非關(guān)系型數(shù)據(jù)庫和文檔型的非關(guān)系型數(shù)據(jù)庫等四類。
MongoDB就是文檔型非關(guān)系型數(shù)據(jù)庫的代表。
稍微技術(shù)一點的理解是:文檔型非關(guān)系型數(shù)據(jù)庫在邏輯上最接近關(guān)系型數(shù)據(jù)庫。因為,通常文檔型非關(guān)系型數(shù)據(jù)庫都是采用JSON或者XML格式,以字符串取代表結(jié)構(gòu)記錄數(shù)據(jù),雖然沒有關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu),但是對數(shù)據(jù)的記錄邏輯基本與關(guān)系型數(shù)據(jù)庫相同,因此也有很多數(shù)據(jù)專家稱其為沒有表結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫。而由于沒有表結(jié)構(gòu),因此文檔型非關(guān)系型數(shù)據(jù)庫就徹底解決了關(guān)系型數(shù)據(jù)庫由于表結(jié)構(gòu)導(dǎo)致的擴展能力不佳的致命缺點,具有無限擴展能力;而且與關(guān)系型數(shù)據(jù)庫相比,其讀寫性能更加優(yōu)越——擴展能力強、效率更高,是文檔型非關(guān)系型數(shù)據(jù)庫的天然屬性。
“我希望大家記住MongoDB一個最核心的真理:我們最能幫到客戶的,就是幫助開發(fā)人員極大提升效率,減少很多他們沒有必要去做的瑣事和工作。這也是從15年前我們公司成立之初就一直秉承的核心理念,也正是這個核心理念的建成讓我們MongoDB擁有世界上最忠實的開發(fā)者社區(qū)。”Mark Porter談到MongoDB的優(yōu)勢時,首先提到的就是其文檔數(shù)據(jù)模型。
Mark Porter強調(diào),MongoDB與友商最大的不同點,是MongoDB文檔數(shù)據(jù)模型真正是做到了為分布式系統(tǒng)服務(wù),“而其他的很多競爭對手的數(shù)據(jù)庫產(chǎn)品,其實都是基于單一的架構(gòu),而這個單一的架構(gòu)已經(jīng)是40年之久的東西了”。他說,MongoDB的數(shù)據(jù)庫模型之所以這么獨特,主要是因為MongoDB的文檔模型“采用的就是數(shù)據(jù)庫本身的語言”,中間不再需要一個翻譯層,而如果這個翻譯層存在的話,“會把整個的工作流程減緩,并且很容易中間出差錯,結(jié)果也不太可預(yù)測”。
更為重要的是,MongoDB的文檔模型,不僅適用于所有數(shù)據(jù)類型(如文檔、圖形、數(shù)組、文本、對象、地理空間、時間序列和關(guān)系型數(shù)據(jù)等),而且還可以支撐關(guān)系型的數(shù)據(jù)類型及關(guān)系型的數(shù)據(jù)庫。
“這對企業(yè)用戶來說真的是一個天大的好消息:因為這就意味著他們不需要再維系三到五個,甚至七個以上不同類型的數(shù)據(jù)庫,用一個數(shù)據(jù)庫就可以做到他們想做的事情。”Mark Porter說。
可以肯定的是,MongoDB的目標(biāo),并非是只做一個提供開源非關(guān)系型數(shù)據(jù)庫的廠商,MongoDB的目標(biāo),是面向企業(yè)用戶越來越多的應(yīng)用程序開發(fā)需求,提供一個“高度可擴展、云原生、全球分布式的數(shù)據(jù)平臺”——這是MongoDB總裁兼首席執(zhí)行官Dev Ittycheria在本次用戶大會中提到的。他說:“MongoDB的愿景是打造開發(fā)者數(shù)據(jù)平臺,為開發(fā)者提供現(xiàn)代、便捷的使用體驗,廣泛支持各種用例,并滿足最為嚴(yán)苛的性能和規(guī)模要求。”
基于這樣明確的愿景,在本次用戶大會上,MongoDB發(fā)布了一系列變革性的新功能:例如,為了滿足更廣泛的用例需求,MongoDB借助統(tǒng)一的平臺將數(shù)據(jù)服務(wù)方法延伸至聯(lián)機運營場景和事務(wù)場景以外的搜索和分析用例,如通過一系列新功能幫助開發(fā)者更輕松地構(gòu)建應(yīng)用程序內(nèi)分析能力,又推出MongoDB時間序列集合功能簡化應(yīng)用程序構(gòu)建,加快構(gòu)建速度并降低成本,還推出了在應(yīng)用程序中構(gòu)建基于相關(guān)性搜索功能的最迅速且最簡單的方法Atlas Search。而為了能夠提供覆蓋數(shù)據(jù)生命周期的服務(wù),MongoDB發(fā)布的產(chǎn)品和功能能夠使開發(fā)團隊能夠更好地分析、轉(zhuǎn)換和遷移Atlas中的數(shù)據(jù),同時減少對可能造成延遲、制約生產(chǎn)效率和增加成本的批處理及ETL作業(yè)的依賴。除此之外,為了幫助企業(yè)用戶靈活地部署合適的應(yīng)用架構(gòu)以滿足業(yè)務(wù)需求,MongoDB還推出了包括Atlas Serverless、Vercel Integration、Clusterto-Cluster Synchronization、Atlas Device Sync和Data API等一系列的服務(wù)和工具,幫助企業(yè)完成對應(yīng)用架構(gòu)的優(yōu)化。A5CA35C1-245B-4A3A-97DB-E800BBFB6C0D
“我基本上是關(guān)注以下幾個領(lǐng)域:大規(guī)模的高性能、全球覆蓋和數(shù)據(jù)遷移、更豐富的 MongoDB使用場景、無縫集成至開發(fā)者的工作流和數(shù)據(jù)安全與隱私這五大方面?!泵鎸Ρ姸嗟漠a(chǎn)品和功能更新,Mark Porter強調(diào):本次MongoDB最新發(fā)布的 6.0版本,新增加的功能有150余項之多,而他更關(guān)注的五個方面,也是MongoDB從用戶體驗的角度,為未來新品研發(fā)和優(yōu)化提出的五個重要方向。
Mark Porter尤其談到本次大會推出的一項“改進功能促進平臺更好地消減和緩解分片群集中的連接峰值(connection storms)”新功能。
“這是我們過去一年花了很大的工夫終于做成的功能,它使我們的數(shù)據(jù)庫變得更具彈性,以便它更好的應(yīng)對峰值的流量。比如說由于一些特殊的事件,網(wǎng)絡(luò)的流量、數(shù)據(jù)庫的流量特別高,或者是由于一些自然災(zāi)難、下雨會有一些突發(fā)流量,還有一些應(yīng)用,還有公司產(chǎn)品最新發(fā)布的時候造成網(wǎng)絡(luò)流量的急劇增加?!盡ark Porter說。
而對于“全球覆蓋和數(shù)據(jù)遷移”,Mark Porter提到了一個“非常重要的新功能”:集群至集群同步?!霸谶^去幾年一直在跟客戶溝通,這是他們最想要的一個性能,經(jīng)過我們幾年的工作,現(xiàn)在集群到集群同步終于成了一個產(chǎn)品了:我們可以發(fā)現(xiàn),利用這個功能,用戶可以很簡單地連接和復(fù)制MongoDB到MongoDB,不管它是本地運營,還是云中的集群。”
MongoDB還談到了此次用戶大會上發(fā)布的一個與此同一維度的全新工具,Relational Migrator:“它是一個特別、特別重量級的功能:它可以幫助我們的客戶,很好地從他們遺留的、正在使用和采購的特別昂貴的關(guān)系型數(shù)據(jù)庫當(dāng)中遷移出來。”Mark Porter說:“我們堅信Relational Migrator將進一步幫助客戶加速擺脫傳統(tǒng)的遺留技術(shù)?!?/p>
“我總是把最好的留到最后?!盡ark Porter最后談到的是安全。在此次用戶大會上,MongoDB 6.0預(yù)覽版采用號稱“最精密的數(shù)據(jù)加密技術(shù)”,推出了業(yè)界首個使用突破性密碼學(xué)工程原理的加密搜索方案:Queryable Encryption。
技術(shù)資料顯示:這項技術(shù)使開發(fā)者能夠在不影響性能的情況下,簡單直觀地查詢加密的敏感數(shù)據(jù),并且不需要具備任何加密經(jīng)驗?!拔覀冮_發(fā)了一個獨特的,非常強大的技術(shù),我可以很自豪地說:現(xiàn)在只有MongoDB才有?!盡ark Porter介紹說:采用這項技術(shù),數(shù)據(jù)庫中的數(shù)據(jù)可以始終保持加密狀態(tài),包括存儲在內(nèi)存和CPU中的數(shù)據(jù);而密鑰永遠(yuǎn)不會離開應(yīng)用程序,且不能通過數(shù)據(jù)庫服務(wù)器進行訪問。因此,這種端到端的客戶端加密技術(shù)使用的加密索引數(shù)據(jù)結(jié)構(gòu),使得開發(fā)者能夠在完全加密的機密數(shù)據(jù)上進行表達式查詢。
“在以往,在可查詢和數(shù)據(jù)加密之間,用戶只能選擇其一:要么就選擇數(shù)據(jù)加密完全保證安全;要么就只能選擇數(shù)據(jù)是可以查詢的——現(xiàn)在,Queryable Encryption可查詢加密,就結(jié)束了用戶總是兩難選擇的局面。”Mark Porter說。
過去的一段時間,數(shù)據(jù)庫市場一直非常“熱鬧”:有非常多的新技術(shù)、新產(chǎn)品和新概念的更迭,尤其是在中國市場,甚至涌現(xiàn)出很多的新的公司。
“不僅是在中國,我們看到全球有很多新的數(shù)據(jù)庫出現(xiàn),并都在快速發(fā)展中。但是如果您去看看DB-engines ranking的實時分析和數(shù)據(jù)庫排名,你會看到各種數(shù)據(jù)庫中,MongoDB始終位列前五名當(dāng)中,并且是唯一的文檔型數(shù)據(jù)庫。”蘇玉龍,MongoDB北亞區(qū)高級副總裁接受采訪時強調(diào),MongoDB在中國市場,從2019年起,就與阿里云、騰訊云通過OEM合作伙伴協(xié)議的形式,面向中國用戶提供MongoDB數(shù)據(jù)庫即服務(wù)?!斑^去一年里,我們整體在中國的業(yè)務(wù)非常出色,在汽車、電商和金融等各行各業(yè)都獲得了長足的進步,而這些行業(yè),正是MongoDB非常適合且擅長的領(lǐng)域?!盇5CA35C1-245B-4A3A-97DB-E800BBFB6C0D