處理960億張照片需要怎樣的技術(shù)架構(gòu)支撐?
原創(chuàng)在成都天府軟件園中,聚集了一大批國內(nèi)外知名企業(yè)入駐,同時,隨著成都創(chuàng)新創(chuàng)業(yè)風(fēng)起云涌,一時間也成為了風(fēng)險投資和創(chuàng)業(yè)團隊集結(jié)的高地。在天府軟件園中,成都品果科技有限公司(以下簡稱品果科技)可謂是無人不知,品果科技是一家以打造“手機攝影生態(tài)圈”為宗旨的公司,旨在為全世界的手機用戶提供最實用的手機拍照軟件,而Camera360就是大家最為熟悉的品果科技的產(chǎn)品。
據(jù)統(tǒng)計,截止到2015年***季度,Camera360的全球用戶數(shù)量突破了4億,單日產(chǎn)生的照片數(shù)量也達(dá)到了2億張,也許就在你看這篇文章的同時,就已經(jīng)產(chǎn)生了幾十萬張照片。每天產(chǎn)生如此多的照片,需要存儲的不僅是照片,還有用戶信息、照片元信息、用戶與照片之間的信息,以及在照片合成視頻時需要用到的GPU運算等等。在如此大量存儲需求以及運算能力的背后,是亞馬遜AWS云服務(wù)保障了這4億用戶流暢的使用體驗。
持續(xù)增長的業(yè)務(wù)帶來的壓力
2010年,品果科技正式成立,同時在當(dāng)年發(fā)布了Camera v1.0的Android版本,緊接著在第二年,Camera360的iOS版本發(fā)布后,一舉超過Instagram,成為了蘋果APP Store中美國區(qū)排名***的攝影應(yīng)用。
經(jīng)過了融資后,Camera360的產(chǎn)品家族不斷擴大,已經(jīng)形成了產(chǎn)品矩陣,即整個產(chǎn)品生態(tài)圈以Camera360為主,第二層主要是MIX濾鏡大師、寶貝相冊以及其他一些產(chǎn)品,最外層是以社交為主的照片圈。而Camera360經(jīng)過了5年不斷的更新和積累,用戶數(shù)量已經(jīng)超過了4億,覆蓋全球超過223個國家和地區(qū),累計產(chǎn)生的照片數(shù)量已經(jīng)超過了960億張。
面對日益增長的用戶數(shù)、每日倍增的照片數(shù)量,以及不斷的功能上線、版本更新,Camera360的技術(shù)團隊感到了***的壓力。
對云服務(wù)的渴求
面對全球4億的用戶,每秒鐘就能產(chǎn)生上千張照片,這對Camera360的存儲能力提出了新的挑戰(zhàn)。然而,照片的存儲只是一小部分,每周新功能的上線,每天的版本更新,都對服務(wù)器、數(shù)據(jù)庫等IT架構(gòu)帶來不小的挑戰(zhàn)。
過去,當(dāng)遇到用戶大規(guī)模增加、照片數(shù)量增加,或是新功能上線這些需求時,Camera360需要購買一些新的服務(wù)器和存儲機器,然后進(jìn)行部署。但從機器的選購到最終上線,至少也需要一個多月的時間。業(yè)務(wù)的快速發(fā)展,讓Camera360的技術(shù)團隊不斷反思自己的技術(shù)架構(gòu)能否應(yīng)對產(chǎn)品的高速增長,隨著云計算的逐步落地,Camera 360想借助云計算的能力,來實現(xiàn)持續(xù)增長的業(yè)務(wù)需求。
不同于有些客戶,為了云而使用云,Camera360對云計算有著深入的理解,在選擇云服務(wù)時,也是有著嚴(yán)苛的要求。以下是Camera 360對云服務(wù)的期望:
• 快速搭建環(huán)境、部署業(yè)務(wù)
• 能快速擴容,***能自動擴容
• 解決存儲問題(IO、容量)
• 隔離性好(CPU、內(nèi)存、IO隔離)
• 網(wǎng)絡(luò)質(zhì)量好(內(nèi)網(wǎng)、出口)
• 節(jié)點多(國內(nèi)、海外)
• 安全(網(wǎng)絡(luò)、數(shù)據(jù)安全)
• ***有一整套解決方案
• 出了問題能快速響應(yīng)
• 成本可控
從這么多的要求來看,Camera360從自己的實際業(yè)務(wù)出發(fā),確定自己需要的技術(shù)和服務(wù)能力,從而開始了云服務(wù)的選擇之路。
選型的標(biāo)準(zhǔn):注重軟實力
目前,國內(nèi)乃至全球,有眾多云計算服務(wù)提供商,而各家提供的服務(wù)以及服務(wù)水平也參差不齊。在選擇時,Camera360副總裁劉宏偉比較看重成本、安全性和穩(wěn)定性以及海外的拓展能力等方面。在經(jīng)過了多方對比考量后,Camera360最終選擇了亞馬遜AWS。在談到其中的理由,劉宏偉總結(jié)了四點。
Camera360副總裁劉宏偉
首先是AWS的全球節(jié)點分布很契合Camera360的全球業(yè)務(wù)以及用戶分布。AWS在全球11個區(qū)域以及28個可用區(qū)向用客戶提供服務(wù),而Camera360的用戶中有60%-70%來自海外,因此,Camera360選擇了AWS的中國、新加坡、日本、美國俄勒岡四個節(jié)點,來為自己的全球用戶提供服務(wù)。
其次,AWS擁有成熟的解決方案。AWS服務(wù)于2006年推出,提供超過40種不同的計算、存儲、數(shù)據(jù)庫、分析、應(yīng)用程序和部署服務(wù),幫助客戶快速的完成遷移、降低成本和擴展應(yīng)用程序。AWS經(jīng)過了多年的實踐驗證,用戶無需再進(jìn)行探索,而是可以直接使用。
第三,技術(shù)領(lǐng)先。Camera360在2011年開發(fā)了云相冊,而云相冊業(yè)務(wù)的可用性非常高,并且要求磁盤有高性能的IO水平。然而,國內(nèi)眾多云計算服務(wù)商提供的磁盤IOPS不能滿足Camera360的需求,而AWS的***的EBS(磁盤存儲)可以滿足Camera360上萬次的讀寫請求,達(dá)到每秒20000次。其次,AWS的彈性計算可以快速解決Camera360的需求,GPU運算減少云視頻合成時間等。
第四是技術(shù)團隊的支撐,這也是劉宏偉最注重的軟實力。AWS提供了7*24小時的技術(shù)支持,幫助Camera360進(jìn)行平滑的遷移、快速的擴容以及一些技術(shù)上的幫助。劉宏偉表示,“正是因為依靠著AWS的技術(shù)支持,我們現(xiàn)在才有膽量和魄力馬上將業(yè)務(wù)整體遷移到AWS上。技術(shù)支持不像是機器,這些都是看不見摸不著的東西,但是實際上對我來說是最重要的東西。”
在選擇了AWS后,Camera360將環(huán)境做成系統(tǒng)鏡像,部署恢復(fù)只需幾分鐘即可完成;通過AWS Auto Scaling功能,自動擴容提升了服務(wù)的穩(wěn)定性;Snapshot備份讓Camera360每天都可以進(jìn)行備份,并且恢復(fù)時間在1、2個小時內(nèi)即可完成;AWS中的身份認(rèn)證管理(Identity and Access Management ,IAM)可以為每個研發(fā)人員分配賬號,不會出現(xiàn)多人使用同一賬號的情況,并且權(quán)限控制粒度更加細(xì)致,每個資源都可以單獨控制。此外,Camera360還將GPU的運算放在了AWS上,支撐了云特效、云視頻合成以及云作圖三個業(yè)務(wù)。Camera360的云特效在AWS上實現(xiàn)可以達(dá)到毫秒響應(yīng),而云視頻合成基本可以在一秒內(nèi)完成,這在過去都是需要二、三十秒才能完成。
平滑的向AWS遷移
每一個要使用云計算的客戶,都會擔(dān)心一個問題,那就是遷移的平滑性、業(yè)務(wù)的穩(wěn)定性。畢竟,大規(guī)模的數(shù)據(jù)和業(yè)務(wù),從一個本地環(huán)境遷移到云上,不是簡簡單單的點幾個按鈕就可以完成的事情。保證用戶的持續(xù)使用,業(yè)務(wù)上不出現(xiàn)中斷,是非常有挑戰(zhàn)性的。對于Camera360這樣對個人用戶提供服務(wù)的客戶來說,可用性下降,用戶體驗變差,將會直接影響公司的品牌以及業(yè)務(wù)。
對于向云遷移,劉宏偉認(rèn)為,首先企業(yè)要有勇氣和魄力,需要很高的意愿來完成遷移的工作,在得到公司領(lǐng)導(dǎo)的支持和同意后,先要進(jìn)行前期的調(diào)研,和云服務(wù)商的技術(shù)團隊溝通,做出所有可能的風(fēng)險點預(yù)估以及相應(yīng)的解決方案,然后建立測試集群,進(jìn)行探索性的測試,要將所有的問題在測試環(huán)節(jié)中解決,包括風(fēng)險點的排除,***再遷移到真實的環(huán)境中。
在Camera360的遷移過程中,AWS的技術(shù)專家寄予了很多的支持,不但將每一個遷移過程中可能出現(xiàn)的風(fēng)險點列出,還逐一向Camera360的技術(shù)人員進(jìn)行講解,提供相關(guān)資料,并且每周進(jìn)行一次討論,當(dāng)所有的風(fēng)險點達(dá)到可控之后,再啟動遷移。
劉宏偉強調(diào),“Camera360此次遷移過程非常平滑,沒有出現(xiàn)任何的事故或問題,是憑借AWS的技術(shù)支撐,這不光是硬件方面,畢竟產(chǎn)品都是現(xiàn)成的,遷移過程如此順滑,這與AWS多年積累的技術(shù)經(jīng)驗是分不開的。”
很多客戶遷移到公有云后,原有的IT基礎(chǔ)設(shè)施就閑置了,而Camera360的機器卻另有價值。Camera360技術(shù)副總監(jiān)劉朝輝表示,拍賣可能是一種好的辦法,但是可以利用舊機器搭建小的測試集群,讓公司的技術(shù)研發(fā)人員在其中進(jìn)行創(chuàng)新。
Camera360技術(shù)副總監(jiān)劉朝輝
過去,Camera360是自建私有云以及使用其他公有云廠商的服務(wù),但是未來,新業(yè)務(wù)將會全部直接放在AWS上,而老業(yè)務(wù)也會逐步都遷移到AWS上。
未來
在業(yè)務(wù)的底層基礎(chǔ)架構(gòu)遷移到AWS后,劉宏偉還希望通過AWS挖掘更大的業(yè)務(wù)價值。
首先是利用AWS的DevOps提升工作效率,通過深入了解AWS上的各種操作以及工具集,讓開發(fā)人員在AWS上更加便捷的工作,提升工作效率的同時也提升了公司的核心競爭力;
其次,利用基于RedShift進(jìn)行大數(shù)據(jù)挖掘,目前Camera360使用的是開源的集群架構(gòu),需要大量的人力維護并進(jìn)行二次開發(fā),未來計劃將大數(shù)據(jù)業(yè)務(wù)移植到AWS中,節(jié)約成本,并且提高效率和能力;
第三是基于GPU進(jìn)行照片數(shù)據(jù)挖掘,Camera360每天產(chǎn)生兩億張照片,但是Camera360的運算能力有限。劉宏偉表示,未來會通過AWS的資源進(jìn)行大數(shù)據(jù)挖掘,例如情景識別功能,幫助用戶更好的發(fā)現(xiàn)自己的照片。















 
 
 










 
 
 
 