MongoDB是目前IT行業最流行的數據庫之一,百度、騰訊、360、京東等大型互聯網公司已經將MongoDB投入實際的生產環境。慕課網作為國內最 大的IT技能學習平臺,憑借強大的行業優勢,與MongoDB建立起獨家內容合作,為MongoDB學習者奉上實用、干貨、權威的技術大餐。
近日,MongoDB高級方案架構師Matias Cascallares、TJ Tang接受了慕課網獨家訪談,從MongoDB在中國的發展現狀、緣何受到各大企業的青睞以及MongoDB新版本的發布,讓你更全面、更深入的了解它!
訪談嘉賓:
Matias CascallaresMongoDB高級方案架構師
TJ TangMongoDB高級方案架構師
(左一:慕課網CEO陳志鋒;左二:MongoDB高級方案架構師TJ Tang;左三:MongoDB高級方案架構師Matias Cascallares)
以下為訪談實錄:
MongoDB在中國
慕課網:首先請二位談談MongoDB在中國的發展現狀。
TJ Tang:MongoDB從2014年年初正式進入中國市場。在此之前是社區的一些自發的使用,即使這樣,MongoDB目前在中國仍然是最流行的數據庫之一。2014年官方的技術力量和業務代表開始進入中國市場,做了一些推廣工作。
在社區的發展工作方面,目前全國各地建立了很多社區,比如北京、上海、深圳、重慶等城市。不久前就在北京做了一次官方活動,每年都會舉行一次。
從用戶的使用角度來講,很多企業都在使用MongoDB,比如百度、360、京東、騰訊這些大型互聯網企業;另外快的打車的關鍵業務也采用了MongoDB作為它的存儲方案;在游戲上的使用就更多了。
從發展程度上看,MongoDB是目前最流行的NoSQL數據庫。
為什么大企業都在用MongoDB
慕課網:您剛剛提到很多大企業都在使用MongoDB,那么為什么這些企業會選擇MongoDB?它對企業和工程師有哪些好處?
Matias Cascallares:首先,MongoDB是一個非常靈活的數據庫。像mysql,sqlserver,oracle這些傳統數據庫,它們的模式非常 固定,在開發之前設計好模式,一旦設計好模式以后修改很麻煩,這對敏捷式開發不是很方便。 而MongoDB的模式非常靈活,它不要求你建模式,你的程序怎么樣寫都可以,所以它的靈活性是程序員很喜歡的。
第二點就是MongoDB的文檔模型。以前是關系模型,它跟文檔模型最大的不同就是,關系模型要把所有東西分開到各個地方去放;而文檔模型是把相關的東西放到一塊,這樣的話使用起來非常方便。
而且最重要的一點是,程序員是面向對象的思維方式,MongoDB是類似對象的結構,它是從對象到對象之間,沒有思維轉換,而不同于從對象到關系型轉換,需要換一種思維去思考,比較復雜一點,這就是另外一點為什么程序員喜歡用MongoDB。
第三點就是,MongoDB用起來比較容易,接口非常方便,不像其他傳統數據庫要學習專門的SQL語言,MongoDB兼顧編程的接口。
最后,MongoDB與傳統數據庫的區別非常大的一點就是它的水平擴展性非常好。現在是大數據時代,大數據要求的性能非常高,因為它要求管理的數據量非 常大。Mysql或其他的關系型數據庫一般是單機式的,也就是在一臺機器上可以做的很好,但是一旦涉及到分布式內容,基本上沒有很好的方案,而 MongoDB是一種分布式的數據庫,它在設計的時候是分布在不同的機器上,同時并發進行,這樣的話處理這個時代的大數據比較流行。
慕課網:MongoDB有哪些應用領域?
Matias Cascallares:從MongoDB的功能性、擴展性、高可用性上來講,如果你需要這樣的需求的話,MongoDB會非常適合,MongoDB分布 式數據可以做的很好。MongoDB地理空間能做的很好,目前移動應用非常流行,比如快的打車,他們就是以MongoDB作為核心技術,來找到附近幾公里 內的出租車司機,還有其他一些手機應用,它會跟蹤你的位置,需要知道你的位置,都可以用到MongoDB。
TJ Tang:我補充一下。從應用場景的角度來說的話,MongoDB還可以做分析型數據庫,特別是需要把各種各樣的數據源放到一起對已有數據做二次開發的時 候,因為MongoDB的文檔模型非常靈活,可以利用其支持異構數據的特性讓你從各個數據源集中到一個庫里,然后在已有數據上提取更多的價值,這是它非常 擅長的地方。
另外一個像物聯網,也是比較常用,物聯網應用的特征就是并發率比較高,而MongoDB通過水平擴展的集群可以實現幾萬到幾十萬OPS每秒的寫入性能。
還有在內容管理方面,舉個例子,MongoDB的文檔模型可以存儲各類數據,多媒體、有接口、無接口,他可以存各種結構的接口數據,所以對各種各樣的內容、產品,比如新聞、視頻、音頻等,都非常方便。
產品目錄也是非常好的使用場景。比如京東就是用MongoDB,MongoDB文檔模型非常靈活,它支持不同結構的數據,我們知道不同的產品它的屬性有 很大的不同,在傳統型數據庫建模比較麻煩,像MongoDB的話,它可以把不一樣結構的數據放到同一個集合,同一個表里面,由于它的這個特性,所以對電商 的支持也非常好。
MongoDB在完善
慕課網:MongoDB對技術語言的支持上目前存在哪些問題?
TJ Tang:目前正在解決的就是性能問題,我們需要更高的性能,在涉及到“鎖”上面,大家對MongoDB有一些建議:我們之前的鎖的顆粒比較粗放,是庫級 的鎖,這個問題在15年1月出來的新版本中,也就是2.8版本會降到非常細顆粒的文檔級鎖,改善這個問題。這樣的話,對很多場景性能會有進一步的提升。很 多企業也都非常期待,這是關于鎖的問題。
其他方面,比如高可用性,也是分布式有一些功能上的要求,需要更快速、更有效。比如復制集,現 在當一臺機器出現故障的時候,另外一臺機器起來的時候需要花幾秒鐘,幾秒鐘雖然很短暫,但是對某些嚴格的場景,還是太長了,這種切換過程當中還可能會出現 由于回滾而導致數據缺失的問題(缺失的數據會保存在文件內以供手動恢復),這種情況也會進一步改善。
慕課網:MongoDB未來會有哪些進一步的改善?
Matias Cascallares:接下來我們會針對幾個問題。第一個是會增加更多的存儲引擎,在2.8版本把存儲引擎做成API的方式。之前只有一個存儲引擎,存 儲引擎是數據庫下面底層的一個部分,跟文件系統打交道,如果把那個部分抽象出來以后,加入更能多存儲方式,對不同的應用場景采用不同的存儲引擎。
另外,對于大型的MongoDB集群。我們說MongoDB部署的話,很多時候不是一臺、兩臺機器,往往都是上百臺,稍微大點的都是幾百臺級別,我們希 望有工具更加有效的來管理集群,因為自己寫腳本可能比較麻煩低效并容易出錯,需要有工具非常界面化或者自動化的去管理,現在已經在做,接下來會是我們的側 重點。
我們希望在一些其他的數據庫功能上有所改善,比如我們在做高性能水平擴展的時候,我們犧牲了一些常用的數據庫功能,比如事務,這 也是很多人要問的:我們很喜歡MongoDB,但是MongoDB不支持事務。針對這個問題,我們 把MongoDB做成跟傳統數據庫從功能上時完全平級的數據庫。
慕課網:對于工程師來說,通過什么樣的方式來學習MongoDB并且更好的應用到工作當中?
TJ Tang:MongoDB大部分的資料是英文,我們有一個中文社區,這個中文社區有幾大模塊,一個是博客;另外一個很關鍵的是我們在翻譯中文的文檔,已經 進行了一半。目前網上有很多資料,很多是過時的,針對的是MongoDB老的版本,會得到錯誤的信息,建議大家盡量看最新的文檔;另外一點就是,中文社區 的用戶組,MongoDB中文組在北京、上海……全國各地都有,大家可以去社區關注,之后跟社區的朋友在一起做線下活動,有什么問題可以互相學習。
另外可能很多人不知道,MongoDB提供的課程都是完全免費的,但是需要翻墻去看。目前我們在跟慕課網合作,考慮把內容放到中國來,讓大家不用翻墻就可以訪問得到。這其實是非常寶貴的資源,非常系統的從初級到中級再到高級,都有很好的課程。
最后就是,MongoDB有一個certification,就是官方認證,一年定期有幾次,通過學習在線課程,考核后得到certification,這樣有利于學習者得到非常好的學習過程。
MongoDB與慕課網合作
慕課網:為什么選擇與慕課網合作?能否談談合作的初衷嗎?
TJ Tang:慕課網在IT垂直教育方面做的非常不錯,注冊會員非常多,App下載已經有500萬。另外一點,我們看到慕課網都是基于為用戶服務的精神,沒有收費課程,這一點跟我們MongoDB作為一個開源的社區理念是非常接近的,我們希望跟這樣的平臺加強合作。
慕課網:MongoDB中文社區在中文工程師群體中有哪些推廣計劃?
TJ Tang:我們在推廣方面主要是線上和線下兩個部分。線上的話我們希望跟國內的一些媒體、平臺合作,比如慕課網,我們準備跟慕課網合作,大量推出網絡教程,為大家提供更多的中文資源,來加速他們的學習過程。
我們也有自己的中文社區,上面有一些相關技術的博客,組織活動、中文的文檔推出。
線下我們會在全國各地定期組織活動。有MongoDB愛好者主動承擔起相關工作,在當地組織一些線下的交流商務活動, 我們作為官方會鼎力支持他們做這些活動,比如在適當的時候會派出官方人員參與,給他們提供紀念品, 或者以適當的方式支持他們的發展。
慕課網:我們也希望MongoDB跟慕課網有更深入的合作,讓好的技術在中國更好的傳播。
了解更多MongoDB課程,詳情點擊:http://www.imooc.com/view/255
慕課網:慕課網(www.imooc.com)國內最大的IT技能學習平臺,課程全部免費。現已布局PC、移動端,網站用戶超過150萬。簽約超過 200位名企(BAT)資深開發工程師,全網獨家上線超過5000節實戰課程(前端開發、PHP、Android、iOS、Python、html、 Swift、云計算等)。
慕課網App是國內唯一被APP Store推為榜首的在線教育類應用。目前有Android和IOS兩個版本,被200余個應用商店推薦,超過500萬的下載使用,成為移動端IT學習首選利器。
慕課網目前已經淘寶懶懶交流會、阿里云、百度FIS前端團隊、MongoDB等具有國際水準的技術團隊建立了獨家內容合作。
(新聞稿 2014-12-25)