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