處理960億張照片需要怎樣的技術架構支撐?

jopen 9年前發布 | 25K 次閱讀 架構 軟件架構

在成都天府軟件園中,聚集了一大批國內外知名企業入駐,同時,隨著成都創 新創業風起云涌,一時間也成為了風險投資和創業團隊集結的高地。在天府軟件園中,成都品果科技有限公司(以下簡稱品果科技)可謂是無人不知,品果科技是一 家以打造“手機攝影生態圈”為宗旨的公司,旨在為全世界的手機用戶提供最實用的手機拍照軟件,而Camera360就是大家最為熟悉的品果科技的產品。

據統計,截止到2015年第一季度,Camera360的全球用戶數量突破了4億,單日產生的照片數量也達到了2億張,也許就在你看這篇文章的同時, 就已經產生了幾十萬張照片。每天產生如此多的照片,需要存儲的不僅是照片,還有用戶信息、照片元信息、用戶與照片之間的信息,以及在照片合成視頻時需要用 到的GPU運算等等。在如此大量存儲需求以及運算能力的背后,是亞馬遜AWS云服務保障了這4億用戶流暢的使用體驗。

持續增長的業務帶來的壓力

2010年,品果科技正式成立,同時在當年發布了Camera v1.0的Android版本,緊接著在第二年,Camera360的iOS版本發布后,一舉超過Instagram,成為了蘋果APP Store中美國區排名第一的攝影應用。

經過了融資后,Camera360的產品家族不斷擴大,已經形成了產品矩陣,即整個產品生態圈以Camera360為主,第二層主要是MIX濾鏡大 師、寶貝相冊以及其他一些產品,最外層是以社交為主的照片圈。而Camera360經過了5年不斷的更新和積累,用戶數量已經超過了4億,覆蓋全球超過 223個國家和地區,累計產生的照片數量已經超過了960億張。

面對日益增長的用戶數、每日倍增的照片數量,以及不斷的功能上線、版本更新,Camera360的技術團隊感到了前所未有的壓力。

對云服務的渴求

面對全球4億的用戶,每秒鐘就能產生上千張照片,這對Camera360的存儲能力提出了新的挑戰。然而,照片的存儲只是一小部分,每周新功能的上線,每天的版本更新,都對服務器、數據庫等IT架構帶來不小的挑戰。

過去,當遇到用戶大規模增加、照片數量增加,或是新功能上線這些需求時,Camera360需要購買一些新的服務器和存儲機器,然后進行部署。但從機 器的選購到最終上線,至少也需要一個多月的時間。業務的快速發展,讓Camera360的技術團隊不斷反思自己的技術架構能否應對產品的高速增長,隨著云 計算的逐步落地,Camera 360想借助云計算的能力,來實現持續增長的業務需求。

不同于有些客戶,為了云而使用云,Camera360對云計算有著深入的理解,在選擇云服務時,也是有著嚴苛的要求。以下是Camera 360對云服務的期望:

· 快速搭建環境、部署業務

· 能快速擴容,最好能自動擴容

· 解決存儲問題(IO、容量)

· 隔離性好(CPU、內存、IO隔離)

· 網絡質量好(內網、出口)

· 節點多(國內、海外)

· 安全(網絡、數據安全)

· 最好有一整套解決方案

· 出了問題能快速響應

· 成本可控

從這么多的要求來看,Camera360從自己的實際業務出發,確定自己需要的技術和服務能力,從而開始了云服務的選擇之路。

選型的標準:注重軟實力

目前,國內乃至全球,有眾多云計算服務提供商,而各家提供的服務以及服務水平也參差不齊。在選擇時,Camera360副總裁劉宏偉比較看重成本、安 全性和穩定性以及海外的拓展能力等方面。在經過了多方對比考量后,Camera360最終選擇了亞馬遜AWS。在談到其中的理由,劉宏偉總結了四點。

 處理960億張照片需要怎樣的技術架構支撐?



Camera360副總裁劉宏偉



首先是AWS的全球節點分布很契合Camera360的全球業務以及用戶分布。AWS在全球11個區域以及28個可用區向用客戶提供服務,而 Camera360的用戶中有60%-70%來自海外,因此,Camera360選擇了AWS的中國、新加坡、日本、美國俄勒岡四個節點,來為自己的全球 用戶提供服務。

其次,AWS擁有成熟的解決方案。AWS服務于2006年推出,提供超過40種不同的計算、存儲、數據庫、分析、應用程序和部署服務,幫助客戶快速的完成遷移、降低成本和擴展應用程序。AWS經過了多年的實踐驗證,用戶無需再進行探索,而是可以直接使用。

第三,技術領先。Camera360在2011年開發了云相冊,而云相冊業務的可用性非常高,并且要求磁盤有高性能的IO水平。然而,國內眾多云計算 服務商提供的磁盤IOPS不能滿足Camera360的需求,而AWS的最新的EBS(磁盤存儲)可以滿足Camera360上萬次的讀寫請求,達到每秒 20000次。其次,AWS的彈性計算可以快速解決Camera360的需求,GPU運算減少云視頻合成時間等。

第四是技術團隊的支撐,這也是劉宏偉最注重的軟實力。AWS提供了7*24小時的技術支持,幫助Camera360進行平滑的遷移、快速的擴容以及一 些技術上的幫助。劉宏偉表示,“正是因為依靠著AWS的技術支持,我們現在才有膽量和魄力馬上將業務整體遷移到AWS上。技術支持不像是機器,這些都是看 不見摸不著的東西,但是實際上對我來說是最重要的東西。”

在選擇了AWS后,Camera360將環境做成系統鏡像,部署恢復只需幾分鐘即可完成;通過AWS Auto Scaling功能,自動擴容提升了服務的穩定性;Snapshot備份讓Camera360每天都可以進行備份,并且恢復時間在1、2個小時內即可完 成;AWS中的身份認證管理(Identity and Access Management ,IAM)可以為每個研發人員分配賬號,不會出現多人使用同一賬號的情況,并且權限控制粒度更加細致,每個資源都可以單獨控制。此外,Camera360 還將GPU的運算放在了AWS上,支撐了云特效、云視頻合成以及云作圖三個業務。Camera360的云特效在AWS上實現可以達到毫秒響應,而云視頻合 成基本可以在一秒內完成,這在過去都是需要二、三十秒才能完成。

平滑的向AWS遷移

每一個要使用云計算的客戶,都會擔心一個問題,那就是遷移的平滑性、業務的穩定性。畢竟,大規模的數據和業務,從一個本地環境遷移到云上,不是簡簡單 單的點幾個按鈕就可以完成的事情。保證用戶的持續使用,業務上不出現中斷,是非常有挑戰性的。對于Camera360這樣對個人用戶提供服務的客戶來說, 可用性下降,用戶體驗變差,將會直接影響公司的品牌以及業務。

對于向云遷移,劉宏偉認為,首先企業要有勇氣和魄力,需要很高的意愿來完成遷移的工作,在得到公司領導的支持和同意后,先要進行前期的調研,和云服務 商的技術團隊溝通,做出所有可能的風險點預估以及相應的解決方案,然后建立測試集群,進行探索性的測試,要將所有的問題在測試環節中解決,包括風險點的排 除,最后再遷移到真實的環境中。

在Camera360的遷移過程中,AWS的技術專家寄予了很多的支持,不但將每一個遷移過程中可能出現的風險點列出,還逐一向Camera360的技術人員進行講解,提供相關資料,并且每周進行一次討論,當所有的風險點達到可控之后,再啟動遷移。

劉宏偉強調,“Camera360此次遷移過程非常平滑,沒有出現任何的事故或問題,是憑借AWS的技術支撐,這不光是硬件方面,畢竟產品都是現成的,遷移過程如此順滑,這與AWS多年積累的技術經驗是分不開的。”

很多客戶遷移到公有云后,原有的IT基礎設施就閑置了,而Camera360的機器卻另有價值。Camera360技術副總監劉朝輝表示,拍賣可能是一種好的辦法,但是可以利用舊機器搭建小的測試集群,讓公司的技術研發人員在其中進行創新。


 處理960億張照片需要怎樣的技術架構支撐?


Camera360技術副總監劉朝輝



過去,Camera360是自建私有云以及使用其他公有云廠商的服務,但是未來,新業務將會全部直接放在AWS上,而老業務也會逐步都遷移到AWS上。

未來

在業務的底層基礎架構遷移到AWS后,劉宏偉還希望通過AWS挖掘更大的業務價值。

首先是利用AWS的DevOps提升工作效率,通過深入了解AWS上的各種操作以及工具集,讓開發人員在AWS上更加便捷的工作,提升工作效率的同時也提升了公司的核心競爭力;

其次,利用基于RedShift進行大數據挖掘,目前Camera360使用的是開源的集群架構,需要大量的人力維護并進行二次開發,未來計劃將大數據業務移植到AWS中,節約成本,并且提高效率和能力;

第三是基于GPU進行照片數據挖掘,Camera360每天產生兩億張照片,但是Camera360的運算能力有限。劉宏偉表示,未來會通過AWS的資源進行大數據挖掘,例如情景識別功能,幫助用戶更好的發現自己的照片。

本文來源:51CTO 作者:鳶瑋

</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!