通過MongoDB分片,他們節(jié)約了近半年的開發(fā)時(shí)間?

大數(shù)據(jù)

作者:上海小胖

SteppeChange通過使用MongoDB,從其應(yīng)用程序的開發(fā)進(jìn)度中節(jié)省下大約六個(gè)月的時(shí)間。

SteppeChange是一家大型數(shù)據(jù)分析技術(shù)公司,負(fù)責(zé)設(shè)計(jì)和實(shí)施客戶定制,快速上市的數(shù)據(jù)科學(xué)和技術(shù)解決方案。他們與世界各地的客戶合作,為挑戰(zhàn)性問題找到創(chuàng)新的解決方案,并分配分析工作,創(chuàng)造最大的價(jià)值。

SteppeChange首席技術(shù)官兼首席數(shù)據(jù)架構(gòu)師Gregory Rayzman分享了為什么公司依靠MongoDB進(jìn)行各種解決方案,其中包括為2.2億全球用戶提供的可擴(kuò)展的移動(dòng)客戶參與平臺(tái)。

1、復(fù)雜任務(wù)

全球科技公司聘請(qǐng)SteppeChange建立一個(gè)移動(dòng)客戶互動(dòng)平臺(tái),供全球移動(dòng)運(yùn)營(yíng)商使用。SteppeChange被第二個(gè)分配了這個(gè)項(xiàng)目,SteppeChange知道他們將要面對(duì)挑戰(zhàn),因?yàn)椴煌膰?guó)家有非常不同的數(shù)據(jù)管理法律。 雖然一個(gè)國(guó)家可能要求所有數(shù)據(jù)在休息時(shí)加密,但另一個(gè)國(guó)家可能要求所有數(shù)據(jù)都存儲(chǔ)在其國(guó)家邊境內(nèi)。

SteppeChange的目標(biāo)是建立一個(gè)具有單一代碼庫(kù)的平臺(tái),同時(shí)平衡多個(gè)數(shù)據(jù)管理要求,滿足全球2.2億用戶的預(yù)期需求。

2、設(shè)計(jì)選項(xiàng)

在評(píng)估數(shù)據(jù)庫(kù)選項(xiàng)時(shí),尋找滿足多個(gè)國(guó)家管理的不同數(shù)據(jù)管理需求的系統(tǒng)是至關(guān)重要的。在調(diào)查了諸如MySQL和PostgreSQL等關(guān)系型數(shù)據(jù)庫(kù)以及Cassandra和Couchbase等NoSQL數(shù)據(jù)庫(kù)后,SteppeChange很快就意識(shí)到MongoDB Enterprise Advanced提供了SteppeChange所需要的靈活性、可擴(kuò)展性和敏捷性。

MongoDB Zones 功能對(duì)SteppeChange的應(yīng)用程序至關(guān)重要。使用它,SteppeChange可以將MongoDB集合中的數(shù)據(jù)分解成多個(gè)分片,并將每個(gè)分片分配給特定地理位置相關(guān)聯(lián)的區(qū)域。區(qū)域是同一集群的一部分,可以在全球查詢,但數(shù)據(jù)位于當(dāng)?shù)厥鞘艿椒稍试S的。 MongoDB區(qū)域分片的延遲不僅減少,而且SteppeChange還可以獨(dú)立于其他區(qū)域擴(kuò)展以及擴(kuò)展每個(gè)區(qū)域。

MongoDB Cloud Manager也是建立和監(jiān)控MongoDB部署的主要資產(chǎn)。它允許SteppeChange可視化所有系統(tǒng)的持續(xù)狀態(tài)和狀態(tài),排除問題,并輕松執(zhí)行時(shí)間點(diǎn)恢復(fù)。

3、解決方案

使用MongoDB Zones,SteppeChange將用戶數(shù)據(jù)以監(jiān)管為目的進(jìn)行分割,并將其保留在當(dāng)?shù)毓茌牱秶鷥?nèi)。更具體地說,用戶數(shù)據(jù)在物理上位于適當(dāng)國(guó)家的數(shù)據(jù)中心,使得應(yīng)用程序?qū)τ脩魯?shù)據(jù)的訪問符合本地法規(guī)邊界。

SteppeChange設(shè)計(jì)并建立了一個(gè)由三個(gè)區(qū)組成的多分片MongoDB集群。每個(gè)Shard都有三個(gè)副本集,除了用于報(bào)告隱藏的無投票權(quán)節(jié)點(diǎn)之外,還允許系統(tǒng)基于節(jié)點(diǎn)功能來達(dá)到負(fù)載均衡。SteppeChange將特定管轄區(qū)有關(guān)的數(shù)據(jù)部署在相應(yīng)管轄范圍內(nèi)的數(shù)據(jù)中心,而不受相同法規(guī)限制的數(shù)據(jù)部署在AWS上。

對(duì)于部署在AWS上的MongoDB區(qū)域分片,SteppeChange在多個(gè)AWS可用區(qū)域(AZ)上分發(fā)復(fù)制集節(jié)點(diǎn),以提高應(yīng)用程序可用性并防止AWS中斷。此外,SteppeChange還針對(duì)配置服務(wù)器使用類似的設(shè)計(jì) – 它們也駐留在多個(gè)AZ中。

為了保證遵守安全和隱私標(biāo)準(zhǔn),SteppeChange還利用MongoDB的本機(jī)加密。為了滿足關(guān)于數(shù)據(jù)訪問的規(guī)定,SteppeChange使用審計(jì)框架來記錄對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有管理和非管理操作。

大數(shù)據(jù)

SteppeChange的部署拓?fù)鋱D

4、MongoDB加速交付

通過MongoDB,SteppeChange可以通過從開發(fā)時(shí)間表中節(jié)省下大約六個(gè)月時(shí)間來快速將SteppeChange的應(yīng)用推向市場(chǎng)。 SteppeChange的團(tuán)隊(duì)已經(jīng)能夠利用基于MongoDB BSON的文檔存儲(chǔ),二進(jìn)制Serializable JSON對(duì)象。這是SteppeChange應(yīng)用程序中使用的基于JSON的底層數(shù)據(jù)結(jié)構(gòu)的完美原生匹配,它提供了一種快速添加新功能的敏捷方法。 SteppeChange還能夠簡(jiǎn)化數(shù)據(jù)管理,消除數(shù)據(jù)遷移的復(fù)雜性,提高開發(fā)人員的工作效率,并讓SteppeChange的工程團(tuán)隊(duì)專注于手頭的任務(wù)。

在不斷向前邁進(jìn)的今天,SteppeChange也在尋求擴(kuò)大MongoDB中其它功能的使用,例如地理空間功能,例如地理圍欄和基于地理位置的報(bào)價(jià)管理,并將其添加到SteppeChange的移動(dòng)客戶參與平臺(tái)。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2017-11-10
通過MongoDB分片,他們節(jié)約了近半年的開發(fā)時(shí)間?
作者:上海小胖 SteppeChange通過使用MongoDB,從其應(yīng)用程序的開發(fā)進(jìn)度中節(jié)省下大約六個(gè)月的時(shí)間。 SteppeChange是一家大型數(shù)據(jù)分析

長(zhǎng)按掃碼 閱讀全文