自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【訪談】七牛首席架構(gòu)師李道兵:在開源世界里逼自己成長

開源 系統(tǒng)
招人是很重要的一環(huán),我們招的人很多都是在GitHub有過不少貢獻的,這些人已經(jīng)了解到參與開源項目的好處了,很多人也會持續(xù)參與。另外,我們也鼓勵大家把發(fā)現(xiàn)的bug和引入的補丁回饋到開源社區(qū),特別是我們用的多的Go語言、MemCache、MongoDB、FFmpeg這類組件。

李道兵,七牛云存儲首席架構(gòu)師。他曾是北大化學(xué)專業(yè)博士研究生,中途毅然轉(zhuǎn)行至自己喜歡的互聯(lián)網(wǎng)行業(yè)。2007 年加入金山實驗室,2010年加入盛大創(chuàng)新院, 曾先后參與了盛大網(wǎng)盤項目和盛大云項目。2013年,李道兵加入七牛云存儲,任職至今。他熱愛開源,曾先后擔(dān)任維基百科中文管理員,Debian Developer,協(xié)助維護 iso-codes 等開源軟件。他喜歡架構(gòu),參與了不少高壓力項目的結(jié)構(gòu)設(shè)計,推崇高可用,可伸縮,低耦合的架構(gòu)設(shè)計。

[[142239]]

問:你是從什么時候開始編程的?為什么沒有堅持自己原來的化學(xué)專業(yè)?

我高中才開始接觸到電腦,大學(xué)的時候興趣大增,還找了一份幫人做網(wǎng)站的兼職。研究生階段專業(yè)是計算化學(xué),所以不僅有大量編程的工作(我的課題算法需要自己寫,沒有現(xiàn)成的軟件),還要幫課題組維護一個由幾十臺Linux服務(wù)器組成的集群,所以也積攢了一些 Linux 運維的經(jīng)驗。離開學(xué)校后沒有繼續(xù)做化學(xué)的一個原因是我沒能正常畢業(yè)(文章發(fā)表不太順利),最后拿了肄業(yè)證書走人;另外一個原因是興趣轉(zhuǎn)移了,自己的職業(yè)規(guī)劃就是要往軟件行業(yè)走,所以是否有一份化學(xué)的學(xué)位證書對我影響不大,所以就沒有堅持下去。

問:你認為現(xiàn)在的開源社區(qū)環(huán)境跟你當初成為Debian Developer時的環(huán)境有哪些差別?是否仍然鼓勵今天的程序員為開源軟件做貢獻?

差別挺大的,當時開源軟件的最大威脅還是來自大公司的一些不實攻擊(特別是微軟的一些FUD策略),而現(xiàn)在的最大挑戰(zhàn)可能是來自開源軟件的主導(dǎo)權(quán)問題。主導(dǎo)權(quán)是留在社區(qū)還是會慢慢變成由公司來主導(dǎo)?GNU組織的影響力也在逐漸下降,大家對開源主導(dǎo)權(quán)繼續(xù)保留在社區(qū)的信心也在逐步下降。

我覺得程序員參與開源是好事。一方面開源世界有很多問題需要解決,解決這些問題能倒逼自己快速成長。對于我來講,如果沒有參與開源的話,我的水平會比現(xiàn)在差很多。另一方面是理念方面的原因,我覺得能夠貢獻一點時間給全人類謀點福利是值得的,特別是在那些可以沉淀下來的事務(wù)上。所以我也在維基百科、翻譯等項目上貢獻過自己的時間。

問:有人認為大量的開源軟件其實都是閉源軟件公司的廣告而已,請問社區(qū)主導(dǎo)開發(fā)的開源項目和公司主導(dǎo)開發(fā)的開源項目有什么本質(zhì)的區(qū)別?這兩種方式各有哪些優(yōu)勢?

作為一個開源軟件的用戶,開源軟件給我們提供了一種可能,讓我們很方便地使用、研究、改善我們?nèi)粘5能浖蟛糠治覀兊谋貍滠浖妓闶巧鐓^(qū)主導(dǎo)的, 比如操作系統(tǒng)(Linux), 命令行環(huán)境(bash等),編輯器(Vim, Emacs),編譯器(GCC),圖形界面(GNOME, KDE), 瀏覽器(Firefox),音視頻播放(MPlayer) 等都應(yīng)該算是社區(qū)主導(dǎo)的。只是現(xiàn)在很多新興的技術(shù)逐漸掌握在大公司的手上,比如Xen, OpenStack, Docker等。

作為一個軟件的主導(dǎo)者,我覺得開源提供了一種全新的合作模式,這個合作模式能讓軟件的發(fā)展更順利,包括 Python, Emacs, Debian 這類的軟件都從這個模式獲益匪淺。

公司的優(yōu)勢在于可以集中人力,所以在推進方面比較給力(比如 Chromium/Chrome)。開源能夠讓很多想法充分競爭,最后最有生命力的想法會自然冒出來。比如在命令行環(huán)境這個領(lǐng)域,開源方就出現(xiàn)過 sh, bash, ksh, tcsh, zsh 等軟件,互相競爭,互相借鑒想法,發(fā)展得很好。另外一個優(yōu)勢就是參與感帶來的巨大激勵,比如開源社區(qū)的人更愿意去報告bug,修復(fù)bug。相比之下,微軟的命令行工具出于保護目的,同時也有投資、改進動力不足等原因,所以一直很難用。

問:你曾先后在金山、盛大創(chuàng)新院、七牛工作,你的足跡和老許基本相同,同時你們也是工作上的好搭檔,請問他是否對你造成了某些影響?

那是當然。老許是我認識的人里技術(shù)鉆研最深的一位,包括 C++, Erlang, Golang 等語言,以及各種高并發(fā)模型,還有我們的各個業(yè)務(wù)的底層模型。我跟老許的選擇有一定的互補性,比如我更關(guān)注于項目本身,比如項目管理、質(zhì)量控制、持續(xù)集 成、持續(xù)交付、網(wǎng)絡(luò)安全這些方面的東西。

問:七牛在2011年成立,而你在2013年才加入七牛,請問你當時是如何加入七牛的?

我2012年離開盛大,加入了一家小公司。大約過了一年,老許請我吃飯,問我是否有興趣加入七牛,我就直接答應(yīng)了。畢竟跟老許合作過多次,也知道老許在做一些很酷的事情,所以能加入七牛也是求之不得的事。

問:你曾在一個“七牛為什么要做云存儲”的slide中提出過一條理由是“很酷”,請問這種“酷”體現(xiàn)在哪些方面?

對我來講,存儲很酷的原因在于存儲之外的其他模塊已經(jīng)逐步平凡化了。Nginx+業(yè)務(wù)邏輯層+數(shù)據(jù)庫+緩存層+消息隊列這種模型幾乎能解決所有的業(yè)務(wù),再加上最近又從語言層面逐步把高并發(fā)的問題解決了,所以只要不涉及到大規(guī)模文件上傳,大家的架構(gòu)都會比較類似。

但一旦開始涉及到大規(guī)模文件上傳,存儲就馬上轉(zhuǎn)變成架構(gòu)中最重要的一部分。畢竟對于結(jié)構(gòu)化數(shù)據(jù)的持久化,我們已經(jīng)能很熟練地使用數(shù)據(jù)庫、分庫、分表、表外索引等技術(shù)來支撐數(shù)十數(shù)百億的記錄,但對于非結(jié)構(gòu)化數(shù)據(jù)的持久化(即文件存儲問題),手邊能用的組件都有這樣那樣的缺點,要么容量不足,要么運維成本太高,要么不支持高可用,要么性能太差。存儲作為架構(gòu)設(shè)計中最難啃的一塊,能夠用云的方式來解決是一個非常漂亮的主意。

常規(guī)的 IaaS 平臺傾向于把所有東西都放在一朵云上,我覺得應(yīng)該充分結(jié)合不同云的優(yōu)勢。比如把數(shù)據(jù)庫和業(yè)務(wù)邏輯的部分放在網(wǎng)絡(luò)覆蓋好的8線BGP機房,靜態(tài)文件和用戶上傳的文件則要放在流量成本低的普通機房,這樣做才更合理。

問:七牛開源了不少項目在Github上,也有很多人在為這些項目做貢獻。廣泛地參與開源項目為七牛的技術(shù)氣氛和團隊建設(shè)帶來了哪些好處?

主要是思路的活躍。對于每一個場景,大家都對現(xiàn)有已有的開源解決方案比較熟悉,知道這些項目的優(yōu)缺點,于是就可以合理利用這些軟件。如果是只能用自己寫的軟件,要么不停地重復(fù)造輪子,要么適配上很別扭,降低了組件效率,同時也增加了bug。

問:七牛內(nèi)部是否有人在鼓勵和推進對開源項目的參與(比如你或許式偉)?你們又是如何推進的?

招人是很重要的一環(huán),我們招的人很多都是在 GitHub 有過不少貢獻的,這些人已經(jīng)了解到參與開源項目的好處了,很多人也會持續(xù)參與。

另外,我們也鼓勵大家把發(fā)現(xiàn)的 bug 和引入的補丁回饋到開源社區(qū),特別是我們用的多的 Go 語言、MemCache、MongoDB、FFmpeg這類組件。

當然,控制工作節(jié)奏也是很重要的,合理安排工作時間,不僅讓大家工作效率高、bug少,也能給大家更多的機會去鉆研技術(shù),而參與開源就是鉆研技術(shù)很重要的一個手段。

問:七牛在持續(xù)交付方面有哪些經(jīng)驗可以分享?從持續(xù)集成到持續(xù)交付,有哪些重要的問題需要解決?

我們的方案算是比較常見的。首先我們用 GitHub 來放我們的代碼,用 Travis 來做 merge 前的單元測試。之后又用 Jenkins 來做完整的集成測試,最后是一套我們自己寫的部署系統(tǒng)(如果規(guī)模小的話,這套部署系統(tǒng)用 Puppet+Capistrano 替代沒有任何問題)。

首先,測試方面問題都不大,部署稍微有點麻煩,我們的做法是用一套獨立的測試集群實現(xiàn)軟件的預(yù)發(fā)布。其次就是灰度部署的問題,灰度部署完成后如何讓開發(fā)人員能清晰地判定新版本是否存在bug,這個方面需要很多輔助工具。最后就是多機房、大量機器的程序分發(fā)問題。

問:能否詳細解釋一下你曾提出過的機房云?機房云是否就是七?,F(xiàn)在的一站式數(shù)據(jù)平臺?

機房云是我的一個不太成熟的想法,跟一站式數(shù)據(jù)平臺有點聯(lián)系,但不是一個東西。機房云的想法主要是針對PaaS平臺的一些缺點提出的。PaaS平臺試圖接管客戶的所有業(yè)務(wù),但對于大客戶來講,一個沒法線上 debug,線上檢測性能瓶頸的平臺是很難接受的。我很希望一些獨立的功能模塊能夠外包出去,比如數(shù)據(jù)庫、隊列、緩存、圖片處理、音視頻處理、語音識別 等。對于這些模塊,我希望實現(xiàn)高速訪問,那么就不能用簡單的 SaaS 平臺來滿足,而一個貼著機房部署的服務(wù)就比較合適了。

對于七牛一站式數(shù)據(jù)平臺,最主要的作用是幫助客戶解決如何方便地使用數(shù)據(jù)的問題。比如圍繞圖片,就有縮放、裁剪、水印這類常規(guī)需求,也有監(jiān)黃、廣告識別等很個性化也很有技術(shù)門檻的需求。七牛不會自己來完成每個需求,因為我們首先沒有這么多開發(fā)力量,也缺少對應(yīng)領(lǐng)域的技術(shù)積累,而且如果每個需求都由七牛來做的話,更妨礙這方面最優(yōu)秀的服務(wù)商的成長。我覺得七牛的最佳做法就是撮合擁有數(shù)據(jù)的人和能處理好數(shù)據(jù)的人,我們的目標是降低數(shù)據(jù)服務(wù)的使用門檻,減少接入數(shù)據(jù)服務(wù)的溝通成本,讓數(shù)據(jù)擁有方和數(shù)據(jù)服務(wù)方都能更快地發(fā)展。

問:七牛的一站式數(shù)據(jù)平臺的開發(fā)現(xiàn)在處于什么階段?一站式數(shù)據(jù)平臺的技術(shù)難點在哪里?

我們已經(jīng)在針對種子服務(wù)商逐個接入了,這個階段主要還是在摸清接入中可能會遇到的阻礙,以及需要我們調(diào)整平臺來解決的問題。這個平臺的技術(shù)難點在于對各個語言的支持、程序的隔離、快速伸縮,以及如何確??蛻魯?shù)據(jù)的安全性。

問:為了實現(xiàn)一站式數(shù)據(jù)平臺的愿景,未來還有哪些需要做的?

除了繼續(xù)改善和穩(wěn)定平臺,還要接入更多的供應(yīng)商來滿足不同客戶的需求,設(shè)置更靈活的計費方式,建立更多的 demo來降低大家的接入成本,等等。

問:七牛最近推出的鑒黃服務(wù)是和圖譜科技合作完成的,兩個團隊各自的分工是什么?在未來七牛還會和什么樣的團隊繼續(xù)合作?

圖譜科技主要是提供監(jiān)黃技術(shù),我們的接入平臺提供了計算能力支持、伸縮性支持、計費支持。當然,整合的工作量不低,這也是未來我們的重要努力方向, 努力讓整個接入過程更加自動化,從而加快接入的速度。未來我們會接入更多的處理團隊,比如語音識別、面部識別、圖片深度壓縮、視頻指紋、視頻深度壓縮等等。

問:你很喜歡算法,并且曾經(jīng)在Topcoder上很活躍,請問你是否推薦其他程序員參與Topcoder或類似社區(qū)組織的活動?

我在Topcoder上算不上活躍,成績也只能算是勉強,不過 Topcoder 對我的幫助很大。在Topcoder上玩,最重要的一個層面在于思路的嚴密性,你少考慮一個環(huán)節(jié),就一點分數(shù)都拿不到。當然,在那里我的建模能力,還有視野都得到了很大的提高。我也很喜歡玩過 Topcoder 或者其他算法競賽的同事,他們的代碼出 bug 的概率很小,而且很多地方寫得很巧妙,我經(jīng)常能發(fā)現(xiàn)一些對我很有啟發(fā)的代碼。

責(zé)任編輯:火鳳凰 來源: 圖靈社區(qū)
相關(guān)推薦

2015-08-30 10:00:32

七牛云存儲計算

2015-05-13 09:34:46

分布式存儲元數(shù)據(jù)設(shè)計公有云

2015-06-16 16:26:27

2016-01-04 14:48:09

七牛

2009-12-18 10:22:50

Ray Ozzie架構(gòu)師

2015-04-15 15:35:34

青蔥創(chuàng)業(yè)計劃

2016-03-01 12:38:07

七牛李婧

2017-04-16 00:26:34

融云直播互動系統(tǒng)

2010-04-20 09:18:00

架構(gòu)師

2018-06-13 09:25:27

IT系統(tǒng)架構(gòu)隱私李聰

2012-08-16 15:11:13

2012-03-21 17:30:21

百度架構(gòu)師

2016-04-07 10:35:46

架構(gòu)設(shè)計架構(gòu)師滴滴出行

2012-09-06 13:12:41

架構(gòu)師ArchSummit

2013-04-19 15:12:17

架構(gòu)師WEB架構(gòu)師

2014-05-20 10:25:16

劉宇WOT架構(gòu)師WOT2014

2012-08-04 16:02:00

架構(gòu)師

2010-08-06 09:44:03

甲骨文首席架構(gòu)師開源Java

2011-03-11 15:38:08

Java

2014-06-06 17:01:34

楊光WOT架構(gòu)師WOT2014
點贊
收藏

51CTO技術(shù)棧公眾號