現如今,當人們在討**有云的時候,已經習慣性的給公有雲戴上了服務小微企業的帽子,而大部分雲服務提供商都會面臨如下質疑:1. 創業公司規模增大到一定程度後,選擇公有雲是否真的節約成本。2. 成熟的產品放在公有雲上,當前的國內雲服務商是否能靠得住,提供足夠的穩定性。筆者想,所有國內的雲服務商都默默的憋著一口氣,一定要靠譜的服務些有規模的成熟產品來正公有雲的名。七牛作為一家成立三年的雲服務提供商,已經擁有一批擁有海量資料的成熟性產品,也想分享下這方面的經驗與案例,希望能夠給初次嘗試雲服務的成熟產品有些借鑑。
對雲,愛過,傷過?
遇到過很多擁有海量資料的網際網路產品,初期會認為所有的服務都應該掌握在自己的手上,這樣可控性最強。他們其中也會有些嘗試過一些雲服務,但如果在當時服務質量沒有給予他們足夠信心,那麼很長一段時間內,他們的絕大部分服務,都是自建的,比如說源站儲存選擇利用業界的一些開源工具自建。
但是這兩年,隨著精益創業理念的盛行,以及雲服務的進一步完善,他們又會開始重新考慮使用第三方服務,觀念在逐步轉變為:專業的東西,讓更專業的人來做,而團隊則更專注業務的優化。謂之「善假於物也」。2023年納斯達克上市的移動社交平台陌陌正是經歷了這樣乙個過程。2023年,當自建的源站儲存,隨著使用者量過億以及月活躍使用者增大至數千萬,遇到了訪問的壓力時,他們想到了七牛雲。
小試「牛刀」
七牛平台上已經承載了一批擁有海量資料的成熟網際網路產品,其中不乏上市公司,很多都是ugc類產品,比如海康威視,唱吧,camera360,豌豆莢,視覺中國等。這裡面的經驗是:出於之前對雲服務已經持有的懷疑以及謹慎態度,成熟產品在選擇一家第三方雲服務時,會進行非常系統而謹慎的功能以及效能測試。這個測試主要包含:
豐富的api,易用性強能夠迅速接入,滿足場景特點。接下來就是要測試源站的穩定性了。
測試穩定性通常都是放一小部分的量跑一段時間看各方面資料。為了測試穩定性,陌陌先丟了萬分之一的量到七牛上,跑了一周。在成熟產品對七牛進行初步穩定性測試的時候,使用的一般是七牛的「映象儲存」功能。映象儲存是指資料還是儲存在客戶源站的情況下,額外使用七牛作為映象伺服器,對於已經擁有海量資料的客戶,這個功能既可以很方便的感受到加速又有「安全感」。通過七牛的開發者後台,可以為源站設定映象儲存,讓**的使用者每次訪問的時候都從七牛雲儲存上讀取。如果雲端上沒有使用者需要讀取的資料,則七牛的伺服器會從源站拉取資源,然後再返回給終端使用者。在七牛內部,這個功能又被稱為「秒接」,其中寓意,可以感受下。
三觀正了,從萬分之一到百分之十
在測試過程中,服務方和客戶方也會在技術選型、團隊、產品以及服務理念等方面進行非常深入的交流,客戶也會從「三觀」來評價雲服務。三觀正了,會對後續的合作有很大的推動作用,也讓彼此都有了很好的信任基礎。在這個服務為王的時代,專注,專業,極致的服務理念應該是每家雲提供商放在心裡去遵循的。
在七牛推動與成熟產品合作的過程中,還有個技術細節被客戶考慮到的是:七牛服務端是用go語言寫的,go從基因上支援平行計算,非常適合做雲服務系統的搭建,因此很多客戶對這個選型也非常認可。
回到陌陌的案例,經歷了系列測試後,對陌陌來說,結果是很令他們滿意的,但由於本身已經是成熟運營的網際網路產品,本著對使用者體驗的負責,測試後決定只切10%的量到七牛上。
專業,極致
社交類產品與電商或者其他產品不同。對於使用者已經過億,日活躍使用者千萬級別的社交類應用,後端系統檔案數可以達到百億級別。整體的訪問中,的流量要佔到90%以上,並且因為在移動裝置上被訪問,因此系統中小於8k的特別多,而的顯示質量,上傳時間和訪問速度都是直接影響到使用者體驗的關鍵因素。此外,對於社交類的ugc, 技術難度在於沒有資料是死角,所有資料理論上都是「熱資料」,流量分散,但總的訪問壓力非常大。還有社交網路中的突發熱點造成的單個檔案的併發訪問急劇增大,也會給基礎服務帶來巨大考驗。
這樣的特點,基於開源技術做儲存,隨著源站的業務壓力越來越大,如果出現問題,很難實現精準的bug定位。這些問題,很多自建儲存的成熟產品一般都會遇到。
而服務過多個類似產品並淌過各種坑的第三方雲儲存服務在這些方面會更有經驗。下面也分享下七牛是如何解決問題的:
海量儲存。
採用多資料中心的廣域網分布式架構,在全國建設數個核心儲存機房。客戶可以根據自己的業務特點主動選擇儲存機房或者完全交給雲服務系統來排程資料。此外,雙資料中心之間採用互備技術,將兩個資料中心用裸光纖互聯,當使用者上傳到某個資料中心時,系統非同步將檔案資料和相關原資料同步到與之互備的另一資料中心,這樣當乙個資料中心故障時,儲存服務會根據故障的級別啟用不同的應急預案,將請求切換到與之互備的資料中心。
在技術上儲存系統的核心訴求是成本和可靠性,而這兩者又是一對矛盾,想降低丟失資料的風險,勢必要增加每份資料拷貝的份數,而增加每份資料拷貝的份數,又勢必增加成本。為了解決這個問題,七牛使用了ec冗餘演算法來很好的平衡這對矛盾,達到低成本,高可用。
流量壓力的應對
作為雲服務提供商,要承載更多的成熟業務,運營上的精細化是非常重要的,能夠考慮不同型別客戶業務的特點,在設計快取以及系統邏輯時,留有足夠的靈活性以及可擴充套件性。雲服務需要建立分級儲存機制,並且按照物件訪問熱點進行遷移。對內部資料流的分發體系進行統一,並且統一管理訊息流的處理流程,以便能有足夠的容量來應對不同客戶的峰值請求,使服務更穩定。同時針對響應時間做實時監控,以確保問題出現時能夠第一時間感知並作出處理。
新增自定義處理來滿足部分客戶的特殊資料處理的需求。這是七牛比較有特點的乙個服務。雲服務作為通用型框架,本身提供的處理服務可能不能包含有些客戶提出的不通用的資料處理需求。因此針對這種特殊需求,客戶可以定義自己的資料處理邏輯。客戶說去我們機房買乙個處理器是可以的。但是接下來要運維、機器全部覆蓋,這個流程做起來很累。自定義處理可以讓使用者把自定義程式打包完,放在這個計算框架裡跑。使用者的應用處理完以後,進入到指定的框架,讓使用者以插電的方式體驗自己的邏輯。這個服務也可以讓更多本身針對非結構化資料做處理的開發者比如語音識別,影象識別服務提供商等可以加入七牛平台上提供處理能力給我們的客戶,大家一起把生態做起來。
專業的服務意識。 服務意識對於雲服務提供商的重要性自不必說,快速定位和解決客戶問題,迅速響應客戶的需求是乙個好的雲服務提供商的判定標準之一。
全面擁抱雲儲存
隨著對七牛的技術以及服務的越來越肯定,幾個月後,陌陌做出了決定,把七牛正式作為源站以及異地備份的提供方,並且將所有處理也轉至七牛。同樣是一直保持創業精神的陌陌,需要一家持續、穩定、有前景、有技術情懷的公司,提供穩定高質的雲服務。七牛恰恰符合他們的期許。
全面擁抱雲的第一步就是將歷史資料遷移到雲端。這是大工程,但對於」成熟產品使用雲服務「來說,這是極其關鍵的服務步驟。首先,在遷移過程中可能遇到以下問題:
硬碟遷移過程中,網路傳輸中的資料出錯。
傳輸過程中的速率問題。拿陌陌舉例,如果採用常用的傳輸辦法,整個遷移過程要耗時半年,並且會嚴重影響線上的業務。
硬碟寄送過程以及使用過程中的磁碟損壞。
儲存資料檔案對資料庫的合併。如果按照傳統的資料庫寫入方式,需要若干天,會給客戶資料庫以及雲服務的資料庫帶來不必要的巨大壓力。
針對這些問題,乙個考慮全面的遷移系統就顯得尤為重要:
針對客戶的業務資料模型,定製資料格式,進行儲存資料的匯入。
資料庫結構需要有強擴充套件性,可以實現瞬時合併。
遷移系統充分考慮不可控因素,比如硬碟損壞,斷電等情況。
至此,七牛已經成為陌陌非常好的合作夥伴,支撐了他們近兩億使用者的資料儲存,訪問加速與處理。雲服務幫助小夥伴陌陌解決了後續業務增長規模所帶來的技術壓力,讓他們可以更加關注自己的核心業務。
大家也許會說國內的雲生態尚不成熟,但是經歷了幾年洗禮,踩過無數的坑後,目前的國內雲服務提供商越來越努力,專業,我們也看到越來越多成熟企業和新創公司一樣,選擇信任專業的第三方雲服務,因此可以更專注自有業務。2015,可以預見,雲將更加精彩。
使用者過億,成熟產品如何全面擁抱公有雲?
現如今,當人們在討 有云的時候,已經習慣性的給公有雲戴上了服務小微企業的帽子,而大部分雲服務提供商都會面臨如下質疑 1.創業公司規模增大到一定程度後,選擇公有雲是否真的節約成本。2.成熟的產品放在公有雲上,當前的國內雲服務商是否能靠得住,提供足夠的穩定性。筆者想,所有國內的雲服務商都默默的憋著一口氣...
尊重使用者,提公升產品成熟性
今天討論乙個話題,就是使用者新增我的城市,城市數限制最多9個城市。方案1 當使用者還想新增城市時,是由程式刪除最近很少用的城市,並同時新增新的城市,然後再通知使用者已經新增完,並刪了某個城市。方案2 當使用者還想新增城市時,先提示通知使用者城市數達最高限制,並為使用者刪除最近很少用的xx,同時新增新...
佳弗網路競拍系統 v4 0 成熟競拍
佳弗網路競拍系統是佳弗網路工作室全力打造的一款國內做成熟競拍系統。本版本為佳弗網路工作室競拍系統非商用版本。環境需求 1.可用的 www 伺服器,如 apache zeus iis 等 2.php 4.3.0 及以上 3.zend optimizer 2.5.7 及以上 4.mysql 3.23 及...