用戶過億,成熟產品如何全面擁抱公有云?

現現在,當人們在討論公有云的時候,已經習慣性的給公有云戴上了服務小微企業的帽子,而大部分雲服務提供商都會面臨以下質疑:1. 創業公司規模增大到必定程度後,選擇公有云是否真的節約成本。2. 成熟的產品放在公有云上,當前的國內雲服務商是否能靠得住,提供足夠的穩定性。筆者想,全部國內的雲服務商都默默的憋着一口氣,必定要靠譜的服務些有規模的成熟產品來正公有云的名。七牛做爲一家成立三年的雲服務提供商,已經擁有一批擁有海量數據的成熟性產品,也想分享下這方面的經驗與案例,但願可以給初次嘗試雲服務的成熟產品有些借鑑。 程序員

 

 

 

對雲,愛過,傷過? 算法

 

遇到過不少擁有海量數據的互聯網產品,初期會認爲全部的服務都應該掌握在本身的手上,這樣可控性最強。他們其中也會有些嘗試過一些雲服務,但若是在當時服務質量沒有給予他們足夠信心,那麼很長一段時間內,他們的絕大部分服務,都是自建的,好比說圖片源站存儲選擇利用業界的一些開源工具自建。 數據庫

可是這兩年,隨着精益創業理念的盛行,以及雲服務的進一步完善,他們又會開始從新考慮使用第三方服務,觀念在逐步轉變爲:專業的東西,讓更專業的人來作,而團隊則更專一業務的優化。謂之「善假於物也」。2014年納斯達克上市的移動社交平臺陌陌正是經歷了這樣一個過程。2014年,當自建的源站存儲,隨着用戶量過億以及月活躍用戶增大至數千萬,遇到了訪問的壓力時,他們想到了七牛雲。 後端

 

小試「牛刀」 七牛雲存儲

 

七牛平臺上已經承載了一批擁有海量數據的成熟互聯網產品,其中不乏上市公司,不少都是UGC類產品,好比海康威視,唱吧,camera360,豌豆莢,視覺中國等。這裏面的經驗是:出於以前對雲服務已經持有的懷疑以及謹慎態度,成熟產品在選擇一家第三方雲服務時,會進行很是系統而謹慎的功能以及性能測試。這個測試主要包含: 緩存

1. 首先是功能,看提供的API是否是可以充分考慮到客戶對場景的需求,而且是否留給調用者以足夠的靈活性。此外,功能的使用者是程序員,而API就是程序員的UI(用戶界面)。API應該對程序員友好,應該簡單,直觀,容易使用的同時優雅。 安全

在陌陌測試七牛的案例中,根據產品業務運營的特色,他們分別從不一樣大小的文件上傳,下載,縮略圖處理,自定義域名綁定,以及七牛獨有的鏡像存儲等功能點進行了測試。 服務器

2. 豐富的API,易用性強可以迅速接入,知足場景特色。接下來就是要測試源站的穩定性了。 網絡

測試穩定性一般都是放一小部分的量跑一段時間看各方面數據。爲了測試穩定性,陌陌先丟了萬分之一的量到七牛上,跑了一週。在成熟產品對七牛進行初步穩定性測試的時候,使用的通常是七牛的「鏡像存儲」功能。鏡像存儲是指數據仍是存儲在客戶源站的狀況下,額外使用七牛做爲鏡像服務器,對於已經擁有海量數據的客戶,這個功能既能夠很方便的感覺到加速又有「安全感」。經過七牛的開發者後臺,能夠爲源站設置鏡像存儲,讓網站的用戶每次訪問的時候都從七牛雲存儲上讀取。若是雲端上沒有用戶須要讀取的數據,則七牛的服務器會從源站拉取資源,而後再返回給終端用戶。在七牛內部,這個功能又被稱爲「秒接」,其中寓意,能夠感覺下。 架構

 

三觀正了,從萬分之一到百分之十

 

在測試過程當中,服務方和客戶方也會在技術選型、團隊、產品以及服務理念等方面進行很是深刻的交流,客戶也會從「三觀」來評價雲服務。三觀正了,會對後續的合做有很大的推進做用,也讓彼此都有了很好的信任基礎。在這個服務爲王的時代,專一,專業,極致的服務理念應該是每家雲提供商放在內心去遵循的。

在七牛推進與成熟產品合做的過程當中,還有個技術細節被客戶考慮到的是:七牛服務端是用Go語言寫的,Go從基因上支持並行計算,很是適合作雲服務系統的搭建,所以不少客戶對這個選型也很是承認。

回到陌陌的案例,經歷了系列測試後,對陌陌來講,結果是很令他們滿意的,但因爲自己已是成熟運營的互聯網產品,本着對用戶體驗的負責,測試後決定只切10%的量到七牛上。

 

專業,極致

 

社交類產品與電商或者其餘產品不一樣。對於用戶已通過億,日活躍用戶千萬級別的社交類應用,後端系統文件數能夠達到百億級別。總體的訪問中,圖片的流量要佔到90%以上,而且由於在移動設備上被訪問,所以系統中小於8k的圖片特別多,而圖片的顯示質量,上傳時間和訪問速度都是直接影響到用戶體驗的關鍵因素。此外,對於社交類的UGC, 技術難度在於沒有數據是死角,全部數據理論上都是「熱數據」,流量分散,但總的訪問壓力很是大。還有社交網絡中的突發熱點形成的單個文件的併發訪問急劇增大,也會給基礎服務帶來巨大考驗。

這樣的特色,基於開源技術作存儲,隨着源站的業務壓力愈來愈大,若是出現問題,很難實現精準的bug定位。這些問題,不少自建存儲的成熟產品通常都會遇到。

而服務過多個相似產品並淌過各類坑的第三方雲存儲服務在這些方面會更有經驗。下面也分享下七牛是如何解決問題的:

1. 海量存儲。

採用多數據中心的廣域網分佈式架構,在全國建設數個核心存儲機房。客戶能夠根據本身的業務特色主動選擇存儲機房或者徹底交給雲服務系統來調度數據。此外,雙數據中心之間採用互備技術,將兩個數據中心用裸光纖互聯,當用戶上傳到某個數據中心時,系統異步將文件數據和相關原數據同步到與之互備的另外一數據中心,這樣當一個數據中心故障時,存儲服務會根據故障的級別啓用不一樣的應急預案,將請求切換到與之互備的數據中心。

在技術上存儲系統的核心訴求是成本和可靠性,而這二者又是一對矛盾,想下降丟失數據的風險,勢必要增長每份數據拷貝的份數,而增長每份數據拷貝的份數,又勢必增長成本。爲了解決這個問題,七牛使用了EC冗餘算法來很好的平衡這對矛盾,達到低成本,高可用。

2. 流量壓力的應對

做爲雲服務提供商,要承載更多的成熟業務,運營上的精細化是很是重要的,可以考慮不一樣類型客戶業務的特色,在設計緩存以及系統邏輯時,留有足夠的靈活性以及可擴展性。雲服務須要創建分級存儲機制,而且按照對象訪問熱點進行遷移。對內部數據流的分發體系進行統一,而且統一管理消息流的處理流程,以便能有足夠的容量來應對不一樣客戶的峯值請求,使服務更穩定。同時針對響應時間作實時監控,以確保問題出現時可以第一時間感知並做出處理。

3. 強大的圖片/音視頻處理服務。

在場景化時代,視覺系,富媒體類的數據會愈來愈多的產生。這其中有一部分來自用戶主動生成,也會有一部分來自被動產生,好比攝像頭的數據。能夠預見,雲存儲平臺上將會承載大量的圖片音視頻類型的數據,這其中雲存儲服務對圖片處理的實時響應能力也是重點。拿陌陌來講,每一秒中有一半的圖片都須要作處理,也就是說,每秒接近5000次左右的實時圖片處理次數,要保證其實時性,99.9%都在一百毫秒之內處理完。而且,使用七牛的圖片轉碼,能夠將原有的JPG格式轉爲WebP格式,在同等質量的條件下得到更好的壓縮比,節省了成本。

對視頻的實時響應也是同樣。當前好比說像短視頻應用,還有一些其餘的遊戲視頻分享,就是用戶在手機上錄完之後,後臺傳輸,過個10秒鐘你就能夠分享了,分享完即時就有其餘終端設備的用戶訪問了,訪問須要的格式還不必定同樣。若是客戶採用自建,這種實時性要求高,從後端數百千米,數千千米的機房,經過各類路由器,最終到用戶小區的局域網,這條路是很長的,環境比較難控制。再到真正的服務端,它必須數據要快,處理能力要強。而後又有高吞吐,用戶量大了,一秒鐘一臺服務器僅能支持幾百個KPS,這種狀況下,對客戶來講,自建能保證性能的響應依然是良好的技術難度大大增長。從咱們觀察到的,服務端處理不該該超過一秒,超過一秒用戶的體驗將大受影響。

4. 新增自定義處理來知足部分客戶的特殊數據處理的需求。這是七牛比較有特色的一個服務。雲服務做爲通用型框架,自己提供的處理服務可能不能包含有些客戶提出的不通用的數據處理需求。所以針對這種特殊需求,客戶能夠定義本身的數據處理邏輯。客戶說去咱們機房買一個處理器是能夠的。可是接下來要運維、機器所有覆蓋,這個流程作起來很累。自定義處理可讓用戶把自定義程序打包完,放在這個計算框架裏跑。用戶的應用處理完之後,進入到指定的框架,讓用戶以插電的方式體驗本身的邏輯。這個服務也可讓更多自己針對非結構化數據作處理的開發者好比語音識別,圖像識別服務提供商等能夠加入七牛平臺上提供處理能力給咱們的客戶,你們一塊兒把生態作起來。

5. 專業的服務意識。 服務意識對於雲服務提供商的重要性自沒必要說,快速定位和解決客戶問題,迅速響應客戶的需求是一個好的雲服務提供商的斷定標準之一。

 

全面擁抱雲存儲

 

隨着對七牛的技術以及服務的愈來愈確定,幾個月後,陌陌作出了決定,把七牛正式做爲源站以及異地備份的提供方,而且將全部圖片處理也轉至七牛。一樣是一直保持創業精神的陌陌,須要一家持續、穩定、有前景、有技術情懷的公司,提供穩定高質的雲服務。七牛偏偏符合他們的期許。

全面擁抱雲的第一步就是將歷史數據遷移到雲端。這是大工程,但對於」成熟產品使用雲服務「來講,這是極其關鍵的服務步驟。首先,在遷移過程當中可能遇到如下問題:

1. 硬盤遷移過程當中,網絡傳輸中的數據出錯。

2. 傳輸過程當中的速率問題。拿陌陌舉例,若是採用經常使用的傳輸辦法,整個遷移過程要耗時半年,而且會嚴重影響線上的業務。

3. 硬盤寄送過程以及使用過程當中的磁盤損壞。

4. 存儲數據文件對數據庫的合併。若是按照傳統的數據庫寫入方式,須要若干天,會給客戶數據庫以及雲服務的數據庫帶來沒必要要的巨大壓力。

針對這些問題,一個考慮全面的遷移系統就顯得尤其重要:

1. 針對客戶的業務數據模型,定製數據格式,進行存儲數據的導入。

2. 數據庫結構須要有強擴展性,能夠實現瞬時合併。

3. 遷移系統充分考慮不可控因素,好比硬盤損壞,斷電等狀況。

至此,七牛已經成爲陌陌很是好的合做夥伴,支撐了他們近兩億用戶的數據存儲,訪問加速與圖片處理。雲服務幫助小夥伴陌陌解決了後續業務增加規模所帶來的技術壓力,讓他們能夠更加關注本身的核心業務。

你們也許會說國內的雲生態尚不成熟,可是經歷了幾年洗禮,踩過無數的坑後,目前的國內雲服務提供商愈來愈努力,專業,咱們也看到愈來愈多成熟企業和新創公司同樣,選擇信任專業的第三方雲服務,所以能夠更專一自有業務。2015,能夠預見,雲將更加精彩。

相關文章
相關標籤/搜索