當(dāng)我們使用網(wǎng)易網(wǎng)盤存儲照片的時候,當(dāng)我們使用蘋果的iCloud同步音樂的時候,當(dāng)我們使用小米的云服務(wù)在線管理和存儲聯(lián)系人、短信、照片、便簽等各種數(shù)據(jù)的時候,云存儲已經(jīng)在不知不覺中完全走進(jìn)了我們的生活里。只是我們在享受這光鮮流暢的服務(wù)背后,是否了解這背后到底需要怎樣的技術(shù)支撐呢?存儲系統(tǒng),尤其是對象存儲系統(tǒng),在處理大量圖片和視頻的時候,都不可避免的會面臨著大流量和高并發(fā)帶來的壓力。網(wǎng)易對象云存儲NOS這個新生兒,從無到有歷經(jīng)兩年時間里,在易信、云音樂、云閱讀、公開課、有道云筆記等30多個重量級產(chǎn)品中大展拳腳。到底它有哪些魅力呢?本期名人堂我們邀請到了2014中國系統(tǒng)架構(gòu)師大會嘉賓來東敏老師坐鎮(zhèn),聊聊云存儲那些事兒。
PS:2014中國系統(tǒng)架構(gòu)師大會即將于9月17-19日在北京盛大開幕,本屆大會以“發(fā)現(xiàn)架構(gòu)之美”為主題,匯聚了國內(nèi)最牛的IT架構(gòu)師,為大家分享IT行業(yè)前瞻與架構(gòu)最佳實(shí)踐。屆時,來東敏老師將為大家分享主題為“NOS(網(wǎng)易對象云存儲)關(guān)鍵技術(shù)解析”的精彩演講,歡迎大家報名,官網(wǎng)地址:http://sacc.it168.com/ 本期活動誠邀云存儲專家坐鎮(zhèn),與各位網(wǎng)友傾心交談,請大家抓緊時間提問吧,說出自己心中的疑惑!截止8月15日,我們將在ITPUB社區(qū)和ChinaUnix社區(qū)評選5名活躍會員,贈送圖書1本,并贈送大會徽章一枚,歡迎大家積極探討!
皮皮(Q1):很高興有機(jī)會采訪到您,能否介紹下自己,分享下您的職場經(jīng)歷?作為一名系統(tǒng)架構(gòu)師,您覺得日常工作中會遇到哪些挑戰(zhàn)?
來東敏(A1):大家好,我的職場經(jīng)歷比較簡單,2010年中科院計算所畢業(yè)后,一直在網(wǎng)易杭州研究院從事研發(fā)工作,重點(diǎn)負(fù)責(zé)分布式文件系統(tǒng)、對象存儲系統(tǒng)、高性能服務(wù)器等技術(shù)領(lǐng)域。這份工作天時地利人和,公司離我家不到10公里,我覺得非常理想。架構(gòu)師行業(yè)高深莫測,正所謂師傅領(lǐng)進(jìn)門修行在個人,或多或少在工作中總會遇到這樣或那樣的挑戰(zhàn),前車之師后車之鑒,我希望通過自己的總結(jié)給大家傳遞一點(diǎn)正能量:
1.要想設(shè)計出一個優(yōu)秀的架構(gòu),無論是在技術(shù)的廣度上還是在領(lǐng)域經(jīng)驗的深度上,都需要日積月累,不斷學(xué)習(xí)沉淀;
2.構(gòu)架師一定要**細(xì)節(jié),站在開發(fā)、測試、運(yùn)維等角度來審視設(shè)計,忽略細(xì)節(jié)的后果很嚴(yán)重,有時候可能會為了一個小小的技術(shù)點(diǎn)對方案做全盤調(diào)整;
3.架構(gòu)設(shè)計要有全局發(fā)展性的眼光,高瞻遠(yuǎn)矚,通過審視過去預(yù)測未來,尋求一種折衷平衡之道,制定最優(yōu)方案;
4.架構(gòu)師需要理性冷靜的分析思維,定性和定量分析要有機(jī)結(jié)合,開源或者自建系統(tǒng)都要掌控到位;
5.架構(gòu)師要負(fù)擔(dān)起一種強(qiáng)烈的責(zé)任感,作為最熟悉系統(tǒng)的那個人,需要耳聽八方,選擇性地吸收外部建議(尤其是領(lǐng)導(dǎo)的建議);
6.架構(gòu)師還要對自己所處的環(huán)境有個清晰的認(rèn)識,合理利用基礎(chǔ)設(shè)施,不要做超出團(tuán)隊駕馭能力的設(shè)計
目前來講,我的大部分時間都花在了程序設(shè)計代碼這塊,希望能在通往成熟的架構(gòu)師之路上,有機(jī)會與大家一起探討架構(gòu)的藝術(shù)。
皮皮(Q2):談到存儲,規(guī)模稍大的企業(yè)通常都會用到3種存儲,對象存儲、文件存儲、塊設(shè)備存儲,到底是選擇采用3個軟件來實(shí)現(xiàn)3種存儲,還是用一個軟件來實(shí)現(xiàn)3個功能?
來東敏(A2):在云計算領(lǐng)域,這三種存儲類型有各自的特點(diǎn)和應(yīng)用場景:文件存儲是大家使用最廣泛的,但存在海量存儲擴(kuò)展性以及存取性能方面的問題;對象存儲弱化了POSIX文件系統(tǒng)接口,通過對象這一基本概念進(jìn)行數(shù)據(jù)存取,特別適合存儲海量非結(jié)構(gòu)化數(shù)據(jù);塊設(shè)備存儲則主要體現(xiàn)在彈性上,就像是一塊可擴(kuò)展的虛擬硬盤,可以插拔、掛載到任意云主機(jī)上。目前國內(nèi)公有云對象存儲做得比較火熱,而彈性塊設(shè)備存儲發(fā)展相對不是特別快,但是隨著云計算深入,彈性塊設(shè)備存儲的優(yōu)勢會逐漸體現(xiàn)出來。網(wǎng)易云實(shí)現(xiàn)的彈性塊設(shè)備存儲(NBS)具有高可用、高可靠、高性能、簡單易用等特點(diǎn),已經(jīng)在內(nèi)部廣泛使用,取得了良好的應(yīng)用效果。
在同一套系統(tǒng)中統(tǒng)一實(shí)現(xiàn)三種存儲類型的最大優(yōu)點(diǎn)是存儲資源的整合,但是為了降低系統(tǒng)構(gòu)建的復(fù)雜性,通常會采用分層實(shí)現(xiàn)。其實(shí)Ceph就實(shí)現(xiàn)了統(tǒng)一存儲,其底層是RADOS對象存儲,作為整個集群存儲服務(wù)的基礎(chǔ)。上層實(shí)現(xiàn)RADOSGW、CephFS、RBD提供對象存儲、文件存儲、塊設(shè)備存儲等服務(wù)接口,只不過目前Ceph官方提示CephFS尚未達(dá)到應(yīng)用到生成環(huán)境的要求。
但是像Ceph那樣在同一套系統(tǒng)中實(shí)現(xiàn)三種存儲也存在一定的問題,例如上述三種存儲有各自的特性,這就導(dǎo)致很難抽象出適用于所有存儲的公共底層,造成特性上的優(yōu)化很難進(jìn)行,例如:我們曾經(jīng)調(diào)研過Ceph的RADOSGW如何實(shí)現(xiàn)S3的GetBucket接口,結(jié)果發(fā)現(xiàn)在帶有prefix前綴參數(shù)的情況下,RADOSGW將遍歷桶下的所有對象,這肯定是無法接受的。如果是單一的存儲系統(tǒng),系統(tǒng)優(yōu)化的目標(biāo)就會很明確,系統(tǒng)設(shè)計上也會有針對特性的專門考量。
皮皮(Q3):業(yè)界公有對象存儲項目有很多,亞馬遜S3、阿里OSS、騰訊COS、七牛云存儲,相對而言網(wǎng)易的對象云存儲系統(tǒng)有亮點(diǎn)?
來東敏(A3):亞馬遜S3是業(yè)界公認(rèn)的公有云對象存儲系統(tǒng)的鼻祖,國內(nèi)同類系統(tǒng)都或多或少借鑒了S3的接口,并在此基礎(chǔ)上提供了上傳下載加速、富媒體處理等功能。目前來看,有關(guān)對象存儲系統(tǒng)架構(gòu)和實(shí)現(xiàn)的技術(shù)分享并不多,可能由于大家相對比較封閉吧。真心希望大家有更多的交流,共同促進(jìn)這一領(lǐng)域的蓬勃發(fā)展,七牛云存儲在這方面做得不錯,我們團(tuán)隊從七牛和S3身上獲益良多。
網(wǎng)易云對象存儲系統(tǒng)(NOS)提供了互聯(lián)網(wǎng)上的存儲服務(wù),致力于提供高度可伸縮、高可靠的廉價數(shù)據(jù)存儲基礎(chǔ)設(shè)施,并給開發(fā)者提供最大程度的便利。對象存儲把用戶數(shù)據(jù)存儲為桶里面的對象。對象由文件、描述文件的元數(shù)據(jù)信息組成。桶是對象的容器,一個用戶可以創(chuàng)建多個桶,桶名稱全局唯一。用戶可以通過簡單的REST接口,在任何時間、任何地點(diǎn)、任何互聯(lián)網(wǎng)設(shè)備上進(jìn)行數(shù)據(jù)的上傳和下載,也可以使用WEB頁面對數(shù)據(jù)進(jìn)行管理。同時,NOS還提供了Java SDK,簡化用戶的編程。用戶可以基于NOS搭建出各種多媒體分享網(wǎng)站、網(wǎng)盤、個人企業(yè)數(shù)據(jù)備份等基于大規(guī)模數(shù)據(jù)的服務(wù)。
NOS從無到有經(jīng)歷了兩年時間,當(dāng)前網(wǎng)易內(nèi)部使用NOS的產(chǎn)品有30個左右,其中包括:易信、云音樂、云閱讀、公開課、有道云筆記等重量級產(chǎn)品。我們的團(tuán)隊成員包括4位開發(fā),2位測試,1位運(yùn)維,0.5位項目管理。與公有云對象存儲系統(tǒng)的項目團(tuán)隊相比,我們應(yīng)該算是小團(tuán)隊作戰(zhàn)。但是NOS在功能接口方面,與市面上的幾家公有對象存儲系統(tǒng)基本差不多,甚至為了兼容POSIX文件系統(tǒng)接口,我們還提供了“根據(jù)prefix和delimiter列出桶內(nèi)對象”這樣的高級接口。要說亮點(diǎn)的話,這里還可以提兩點(diǎn):1.在富媒體處理速度方面有較明顯的優(yōu)勢,在主要得益于我們的富媒體系統(tǒng)構(gòu)架和實(shí)現(xiàn)方式;2.桶隔離機(jī)制,運(yùn)維人員可以根據(jù)實(shí)際情況實(shí)現(xiàn)桶粒度隔離,包括:流量隔離、連接數(shù)隔離、QPS隔離等。更多精彩內(nèi)容將在大會上做分享。
皮皮(Q4):作為本屆大會的演講嘉賓,能否透露下您的演講主題?分享下網(wǎng)易對象存儲系統(tǒng)的架構(gòu)實(shí)踐?
來東敏(A4):本次大會,我的演講主題將圍繞NOS構(gòu)建過程中碰到的問題展開,并重點(diǎn)分享我們?nèi)绾谓鉀Q這些問題的過程。實(shí)際上,在NOS快速發(fā)展的兩年多時間里,系統(tǒng)構(gòu)架也在不斷演進(jìn),項目組成員也是隨著NOS一起成長,這是個非常美妙的過程。系統(tǒng)搭建初期,整個NOS只有兩臺應(yīng)用服務(wù)器,加上一個非常小的存儲集群,只能實(shí)現(xiàn)基本的對象存取功能,在系統(tǒng)可用性、可擴(kuò)展性等方面存在一定局限性。后期通過持續(xù)迭代改進(jìn),我們逐步加入“圖片處理、視頻處理、音頻處理、高速緩存”等功能。在非功能特性上也對架構(gòu)做了大量的調(diào)整和改進(jìn),確保系統(tǒng)無單點(diǎn),能夠?qū)崿F(xiàn)平滑升級和水平擴(kuò)容。最終成就了一個穩(wěn)定易用、安全有彈性、成本低廉的對象存儲系統(tǒng)。未來我們將在確保系統(tǒng)穩(wěn)定運(yùn)行的情況下,進(jìn)一步優(yōu)化系統(tǒng)性能,提高系統(tǒng)抗壓能力,并著重提高移動端體驗。
目前,整個網(wǎng)易云對象存儲系統(tǒng)(NOS)主要分為“接入、緩存、邏輯、存儲”四個層次。1.接入層:使用Openresty(類似Tengine),其強(qiáng)大的Nginx Lua模塊實(shí)現(xiàn)了桶粒度實(shí)時流量統(tǒng)計、流量隔離等功能;另外,使用Nginx Lua寫了部分適合在接入層實(shí)現(xiàn)的邏輯;2.緩存層:使用TrafficServer,這是一款專業(yè)的緩存服務(wù)器,我們測試發(fā)現(xiàn)其無論在穩(wěn)定性還是功能和性能上,都比Squid靠譜;我們用它實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)以及富媒體處理后的臨時數(shù)據(jù)緩存;3.邏輯層:使用Tomcat實(shí)現(xiàn)對象存儲主要的業(yè)務(wù)邏輯,由于Tomcat眾所周知的在高并發(fā)上的短板,我們正在積極探索,計劃使用Netty來替換Tomcat;4.存儲層:是對象存儲系統(tǒng)的基石,NOS構(gòu)建在網(wǎng)易分布式文件系統(tǒng)(DFS)和網(wǎng)易分布式數(shù)據(jù)庫(DDB)之上,DFS做數(shù)據(jù)存儲,而DDB則存儲元數(shù)據(jù);目前,有一個三人團(tuán)隊正在進(jìn)行DFS2.0的開發(fā),以實(shí)現(xiàn)更優(yōu)的存儲構(gòu)架;
皮皮(Q5):古人云,三十而立,四十不惑,五十知天命。您三十成家立業(yè),家庭幸福美滿,這一路上對人生有哪些感悟?
來東敏(A5):人生感悟?qū)嵲谡劜簧希沂莻樂天派,無論順境逆境,都能保持良好心態(tài),所以大家都喊我微笑哥。我們組的項目管理做得非常好,一般情況下,都會有一個良好的開發(fā)節(jié)奏,這對于我來說非常重要,因為那就意味著,每天下午六點(diǎn)就能準(zhǔn)時回家,十分鐘后,奶奶爸爸媽媽老婆兒子和我,就能圍坐在一起吃晚飯。當(dāng)然啦,晚上免不了要寫寫代碼,看看技術(shù)文章。對于工作,我覺得進(jìn)入狀態(tài)很重要,沒狀態(tài)的時候不妨到處溜達(dá)溜達(dá),喝杯咖啡。當(dāng)碰到煩心事的時候,也別堵得慌,非常喜歡科比的一句話,與大家共勉:Falling is a part of life, but walking is the way of life.
活動時間:7月17-8月15日
活動獎勵:歡迎大家積極提問或者分享自己的感悟,活動結(jié)束將有專家評選最佳活躍會員5名贈送技術(shù)圖書1本,并且贈送大會徽章1枚!
[attach]925309[/attach]seesea2517 發(fā)表于 2014-07-17 17:46
作為我們小小的個人用戶而言,我比較關(guān)心我們的數(shù)據(jù)在云上的安全性,防止隱私泄露方面的事情。比如各種聯(lián)系 ...
wenhq 發(fā)表于 2014-07-21 10:35
回復(fù) 23# dtrees
這個寫的策略效率不是很高呀,HDFS寫的機(jī)制不知有所了解不?應(yīng)該跟你這個策略不太一樣。 ...
seesea2517 發(fā)表于 2014-07-17 17:46
作為我們小小的個人用戶而言,我比較關(guān)心我們的數(shù)據(jù)在云上的安全性,防止隱私泄露方面的事情。比如各種聯(lián)系 ...
beyondfly 發(fā)表于 2014-07-22 12:39
個人覺得,架構(gòu)師屬于比較高大上的一種職業(yè),首先是要寫代碼寫到一定的程度, 經(jīng)歷了各種各樣的項目,對于各 ...
dtrees 發(fā)表于 2014-07-25 09:47
其他企業(yè)狀態(tài)不了解額,呵呵,確實(shí)談不上安全,要安全就得為此付出成本,況且很多時候社會工程學(xué)更管用 ...
dtrees 發(fā)表于 2014-07-27 20:52
安全當(dāng)然是重要的,是存儲系統(tǒng)設(shè)計中非常關(guān)鍵的一環(huán),之前的回復(fù)中其實(shí)是想說,在工程上絕對的安全很難 ...
seposal 發(fā)表于 2014-07-30 10:07
來先生應(yīng)該研究過ceph,能否就一個ceph的問題咨詢一下?能否簡單介紹一下RadosGW相對于OSS的優(yōu)劣?
很想 ...
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |