Shutterfly與MongoDB的合作案例展示
蝴蝶
Shutterfly 是領先的基于互聯(lián)網(wǎng)的社交表達和個人發(fā)布服務,為數(shù)百萬客戶保護超過 60 億張圖片。該公司的優(yōu)質(zhì)在線照片服務和產(chǎn)品使消費者能夠以照片和視頻的形式分享回憶,并將日常照片變成創(chuàng)意紀念品,例如相冊和個性化網(wǎng)站。
作為唯一不縮減采樣、壓縮或強制刪除照片的照片共享網(wǎng)站,Shutterfly 面臨著巨大的數(shù)據(jù)增長,這推動了其現(xiàn)有 Oracle 數(shù)據(jù)庫的性能極限。在對開源關(guān)系和非關(guān)系替代方案進行廣泛分析后,Shutterfly 選擇了 MongoDB 作為其持久數(shù)據(jù)存儲。MongoDB 提供高性能、可擴展性和快速上市時間——這是幫助 Shutterfly 為客戶提供無與倫比服務的三重優(yōu)勢。
問題
為了在競爭中保持領先并提供最高質(zhì)量的客戶體驗,Shutterfly 不斷實施新功能以改進用戶與其產(chǎn)品和網(wǎng)站交互的各種方式。在 Oracle 上開發(fā)了十年之后,Shutterfly 的代碼庫很脆弱,使許多工程用例陷入了痛苦的爬行。應用程序需要很長時間才能正確構(gòu)建;或者,一旦建成,它們的性能就不夠快。事實證明,Oracle 的費用太高(軟件許可和硬件之間)并且提供的性能低于標準。2009 年,Shutterfly 開始尋找可以與業(yè)務一起增長的替代數(shù)據(jù)庫,并尋求一種開源解決方案,使他們能夠跨商品硬件橫向擴展,加快應用程序性能并縮短上市時間。MongoDB 符合要求。
為什么是 MongoDB?
MongoDB 以低成本為 Shutterfly 提供了敏捷、高性能、可擴展的解決方案。MongoDB 與 Shutterfly 的基于服務的架構(gòu)無縫協(xié)作,提供了一種干凈、快速的應用程序構(gòu)建方式,以及匹配多個用例的靈活性。迄今為止,Shutterfly 已經(jīng)在 MongoDB 上開發(fā)了近十幾個項目,現(xiàn)在存儲了超過 20TB 的數(shù)據(jù)。
加快上市時間
數(shù)據(jù)服務總監(jiān) Kenny Gorman 解釋說,使用 MongoDB 的“真正殺手級原因”是其豐富的基于 JSON 的數(shù)據(jù)結(jié)構(gòu),它為 Shutterfly 提供了一種敏捷的軟件開發(fā)方法。借助 MongoDB,Shutterfly 團隊可以快速開發(fā)和部署新應用程序,尤其是 Web 2.0 和社交功能(例如標記、喜歡、評論),這些功能在其遺留系統(tǒng)上實施起來既困難又昂貴。MongoDB 的文檔模型豐富了 Shutterfly 的數(shù)據(jù)建模能力,允許使用以前不可用的新查詢模式,同時靈活的模式縮短了開發(fā)周期并加快了上市時間。
提高性能
留下復雜的遺留代碼簡化了 Shutterfly 架構(gòu),使公司能夠以低成本提高單個頁面和站點的性能。插入的平均延遲從 400 毫秒降至 2 毫秒,Shutterfly 客戶現(xiàn)在可以在執(zhí)行共享和評論照片等任務時獲得他們期望的速度。
可靠的服務器支持
Shutterfly 使用 MongoDB 的副本集滿足了其極高的正常運行時間要求(超過 10,000 ex/sec),通過節(jié)點的自動故障轉(zhuǎn)移和成員節(jié)點的恢復實現(xiàn)高可用性。他們獨特的架構(gòu)為每個副本集包含四個成員,將數(shù)據(jù)寫入多個成員的能力對于數(shù)據(jù)質(zhì)量和安全至關(guān)重要。
一目了然的監(jiān)控
Shutterfly 使用MongoDB 管理服務 (MMS)作為獲得系統(tǒng)可見性和洞察力的主要工具。它不僅節(jié)省了 DBA 資源,而且 MMS 使他們有信心更快地推進項目。此外,“它使我們能夠與 MongoDB 支持建立緊密的聯(lián)系,”Gorman 說。
開源社區(qū)
Shutterfly 很早就預測到 MongoDB 擁有打造一流產(chǎn)品和大型社區(qū)的熱情、遠見和專業(yè)知識。他們是對的:MongoDB 社區(qū)一直是他們項目的重要資產(chǎn)。“MongoDB 背后有如此多的精力,我們對整體發(fā)展方向和速度感到非常滿意,”戈爾曼說。
結(jié)果
Shutterfly 從 Oracle 切換到 MongoDB 使性能提高了 9 倍并大幅降低了成本。此外,Shutterfly 現(xiàn)在可以在幾個沖刺中開發(fā)應用程序——幾周而不是幾十個月的時間框架。
得到教訓
Gorman 的建議是為工作選擇合適的工具。最近的 NoSQL 運動帶來了在特定用途上蓬勃發(fā)展的新工具;關(guān)鍵是要適當?shù)厥褂妹總€工具。他建議說,MongoDB 的核心功能表現(xiàn)得非常好,但不要要求它做它不做的事情。“你的數(shù)據(jù)有它想要的格式,所以仔細聽,它會告訴你的。”
下一步是什么?
MongoDB 是 Shutterfly 持久性架構(gòu)的基石,是開發(fā)人員觸手可及的重要功能。“到目前為止,我們已經(jīng)看到了巨大的收益,我們對未來感到非常興奮,”戈爾曼說。“我們不斷地針對 MongoDB 評估所有新項目,如果合適,我們就會使用它。我希望這將為我們的客戶提供出色的新功能的重要組成部分。”