摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。
非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520
張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技術負責人、策劃人。Kubernetes項目貢獻者和維護者,Docker項目貢獻者。前Cloud Foundry中國團隊和百度私有云項目組成員。InfoQ、CSDN、《程序員》雜志等多篇浙大系技術文章的貢獻者和策劃人,他還是《Docker——容器與容器云》一書的主要作者之一。
問:你現在的目標是成為一位計算機科學家嗎?
是。
問:你是從什么時候開始想成為一位計算機科學家的?
大概是由于中學時候就開始玩電腦,然后自然而然就進入了計算機專業。由于我的興趣主要在云計算以及Linux操作系統上,所以我的導師跟課題都是跟這些相關的。
2011年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。后來事實證明我們對趨勢的判斷是對的,因為從那個時候開始,軟件的開發和發布以及整個生命周期就發生了改變。從此以后,可以說開源技術掌握了云計算行業,甚至是整個計算機行業的主流發展態勢。于是,我們開始更深入地鉆研Cloud Foundry, Docker, Kubernetes這樣的技術,并且作為這些項目的貢獻者成為了社區中的重要成員。
問:你認為在云計算領域,學術跟產業之間有沒有明確的界限?
首先,云計算這個領域本身就比較特殊,它其實沒有很多基礎性研究,所以這個領域的學術跟工業是分不開的,中間沒有一個明顯的界限。比如,伯克利的AMP實驗室做的一套高性能數據分析系統,最終開源出去就變成現在的明星項目Spark,成為工業界大數據的事實標準。在這些領域中,沒有任何一個界限能夠劃定哪些技術是學術的,而工業界不能用。因為云計算本來就是“站在巨人肩膀上”的一種技術,它基于已有的分布式系統來做進一步的創新和整合。
問:你現在在SEL實驗室的工作是什么?
我主要負責實驗室云計算團隊的技術工作 ,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。
問:SEL實驗室的前身是VLIS實驗室,當初建立VLIS實驗室的目的是什么?現在SEL實驗室的關注點有沒有變化?
我們實驗室最開始的研究方向就是軟件工程以及計算機軟件。實驗室一開始就注重從學校的角度跟知名企業建立強強聯合的關系,致力于為工業界提供最好的大規模信息系統的開發技術和能力。在那個時候,我們的主要關注點是金融信息系統的開發,并且同全球最大的資金托管機構美國道富銀行建立了緊密的合作研發關系。從這個時候開始,我們向工業界輸出了大量的技術能力,整個北美市場的股票交易系統的后臺都是我們實驗室師生參與重新開發的。而軟件技術發展到現在,新一代的大規模分布式系統開始更多地以知名開源項目作為表現形式,這些技術也就自然成為我們新的關注點。其中最重要的還是云計算技術,但是我們略有側重,更關注輕量化的云計算技術,我們認為這將是一個新的變革。
問:你們實驗室跟Cloud Foundry還有百度、思科等知名企業都是以什么形式合作的?
首先肯定有人才上的合作,因為學校本來是人才,我們會選擇一些從事這個方向的優秀的學生,聯合工業界的公司,比如去道富,VMware,思科總部或者百度等等,完成一個以技術研究為核心,以實際開發為途徑的長期合作學習的過程。學生不是實習幾個月然后回來,而是從開始到畢業,從研究的方向到最后的畢業論文都跟這些公司的真實技術場景緊密相關,并且專注于這些IT巨頭的核心技術以及云計算平臺的開發和研究工作。
問:你們實驗室為什么在Docker還不太完善的時候就敢去嘗試這種技術?
容器技術不是一種新技術,它其實很早就存在了。在此之前,我們搞Linux內核的時候已經用過類似的技術,而且做PaaS用到的技術也是基于Linux容器的,所以我們團隊很久以前就對這種技術有過很多接觸和研究。2013年的時候,我們同學主要在從事的是VMware的Warden容器的研發,緊接著Docker就出現了,并且比前一代容器技術要完善很多,所以我們就自然而然地轉到了Docker上。這就是為什么Docker一出現就會引起我們的關注。輕量化的云計算技術一定會以這樣的方式實現,只不過實現不同,而我們肯定會選擇更好的實現。
問:你本人是怎么成為Kubernetes和Docker項目的貢獻者的?
我是從Cloud Foundry團隊出來的,而Cloud Foundry是一個純粹的開源項目,它沒有市場人員和項目經理這樣的角色來干擾工程師的工作,所有貢獻者都是通過遠程協作和結對編程來貢獻代碼的。我,以及我們實驗室的大多數同學從一開始就是這樣一種工作模式,所以對于我們來說,參與開源項目是很自然的,而且我們也不像其他公司那樣尋求互等的商業利益。
我們認為開源項目是一定要參與的,不僅要參與,還要學會主導項目的方向,成為維護者和更重要的核心代碼貢獻者。我剛才講過,我們的愿景就是要基于開源軟件做事情,做研究也好,做進一步的商業活動也好,一定要進入到社區里面,而不僅僅是一個使用者。
問:Docker一直存在安全方面的問題,在這方面你有哪些經驗可以和大家分享?
我也在《Docker——容器和容器云》里提到過,Docker本身確實有安全問題,但是一定要分場景討論。比如,什么樣的場景下我會在一臺裸機上部署Docker;什么樣的場景下我會讓Docker容器跑在虛擬機里面。在目前這種情況下,如果你是一個公有云提供商,我認為你還是要把容器拷在你的虛擬機里面,防止出現逃逸狀況。
我們在書里講過,你的Docker容器和整個Docker Daemon環境最好做安全加固,在操作系統層面做很多加固,設置權限,并且在整個系統的設計上把權限設計和授權設計擺在第一位,逐層來把不正確的行為過濾掉。另外,一定要區分場景。對于私有云的話,安全要求滿足第一點就可以了。但是對于公有云來說,一定要做最高等級的安全預案。
以上是從業務方面講,但是從技術方面講,容器本身的安全問題是很難解決的,但是有一些努力的方向非常值得我們關注。比如最新的Rocket集成了英特爾在CPU上的一些虛擬化技術來做到硬件加固,這就是等級很高的安全技術。另外還有像國內趙鵬他們做的Hyper,是一個基于虛擬化技術的容器,它跟虛擬機的安全系數幾乎是一樣的。所以我覺得從另一方面說,這些技術應該得到大家的重視,并且集成到我們現有的解決方案里面。
問:現在在生產環境中使用Docker的人還是不太多,其背后的原因多種多樣,你認為現在Docker面臨的最大的阻礙是什么?
第一個問題在于Docker所屬公司本身的強勢,以及他們自己想做一攬子事情的態度。這個問題使得Docker現在變得非常臃腫,而且導致本來應該專注解決的問題沒有解決掉。如果他們投入主要力量來解決容器的安全問題,我覺得反而要比現在的態勢好。
第二,我們使用Docker也好,對它做二次開發也好,其實我們不要把自己的眼光局限在Docker上面。讓Docker只做容器的事情其實是最好的選擇,其余的事情交給更專業的人。我們不要過分相信來自某些商業化的宣傳,比如一個人或者一個團隊就能完成從開發到部署到運維的所有流程。哪怕你一開始可以,但是隨著業務的正常增長,技術發展到一定程度之后你一定是做不到的。所以一定是專業的人做專業的事。
問:Docker和CoreOS一起創立了一個開放容器計劃(OCP)。你認為OCP的成立對于軟件開發行業會造成什么影響?
容器鏡像不單指Docker鏡像,它很久之前就已經存在了。容器鏡像作為一種軟件的發布方式,現在已經得到了大家的認可,成為了行業的事實標準。并且由于容器鏡像本身已經存在了很久,所以它本身標準的普及是比較容易的。所以OCP的成立其實是為這種鏡像發布的方式提供了一個技術上的標準。
以前,這一套東西雖然可以做標準,但是沒有技術來支撐它,現在有了。我們通過標準容器來支撐標準鏡像。所以,這兩個標準如果能夠在OCP里面得到統一,我相信它對整個軟件工程將來的發展都是有很大影響的。我們現在學校的課程里就已經引入了完全基于容器的軟件工程設計模式,谷歌也提出了基于容器的編程模型,將來的軟件工程一定會向這方向發展。
問:你有一篇文章叫做《從Borg到Kubernetes》。你覺得Kubernetes今后的發展會怎么樣?它和Mesos分別會向什么方向發展?
我們最近也跟谷歌的人一起交流了很久,首先,Kubernetes確實背負了很多Borg之前的優秀的設計理念,其中包括Borg在谷歌內部大規模集群業務的應用。雖然現在還有一些應用我們看不到,但是Kubernetes將來的發展目標一定是用來解決這些問題。
Mesos和Kubernetes在一開始發展時其實是非常直接的競爭對手,因為這兩者關注的事情有很多是一致的。但是隨著這兩個項目的繼續發展,它們已經形成了合作關系。比如,Mesos本來就是一個優秀的調度器,那么接下來Mesos會更關注這個業務。并且Mesos可以被更方便地集成到Kubernetes里,作為Kubernetes的一個核心調度器來工作。
這兩個項目現在的關注點其實是不一樣的,使用的場景也不一樣。在今后的發展中,它們會逐漸融合對方的優點?;ハ嘀g的集成會越來越多,互相之間的重合會越來越少。
問:學術跟產業之間的脫軌問題一直以來經常被人們所詬病,浙大在這方面做得很不錯,有沒有什么經驗可以分享?
首先,作為一所學校,要學會如何在我們國家的體制下,在不影響正常的教學、科研的前提下,獲得企業的支持。學校需要鼓勵學生在看似枯燥的學業中找到真正的個人興趣點。比如我們實驗室就涌現出了非常多的代碼貢獻者、作者、領域內的小專家。因為我們實驗室從一開始就鼓勵個人發展自己的興趣,并且鼓勵同學向大家分享你的工作成果。這樣,工業界會自然而然地關注過來,合作也接踵而至。
另一方面,如果學校自身的硬件條件很強,技術水平很高的話,學校就可以為工業界做出很多貢獻,無論是開源貢獻,還是參與到工業的開發。并且還有一點很重要,就是學校要想辦法把實驗室的技術和研究經驗轉化成工程上可以應用到增值需求里的東西,而不只是埋頭寫論文。所以,我們實驗室在碩士生階段,不會提出苛刻的論文要求。我們更希望你的論文是對一個開源項目的貢獻,或者是我們和產業界合作的課題的相關實際工程經驗。
同時,我們也在浙大試點了一個學院,整個軟件學院在以更加工程的方式推動科研的走向。我們課題組從十年前開始做這樣的事情,所以學術跟產業之間的脫軌問題我們這邊幾乎是沒有的。
問:浙大有這么好的環境,但是很多其他大學沒有能力提供這樣的環境。你建議在一般大學學習的學生怎樣來豐富自己的專業知識?
首先對于一個學生,尤其是CS專業的學生,我認為實習是最重要的。你一定要想辦法在跟導師融洽相處的前提下,尋求到與自己專業相關的實習機會,并且珍惜這些機會,因為實習能夠使你的專業技能得到鍛煉。并且你應該想辦法把實習轉化成畢業論文,或者是學校要求的課程設計。這樣的經歷會對你在工業界的影響力也好,工作也好,起到很大的積極作用。
問:你認為學習Docker需要幾個階段?
我們在書的后記里面講過,不止是Docker,對于任何一個開源項目來說,都有這樣的三個或四個階段。
首先,你要去用,而且不只要用,還要變成一個優秀的玩家。對于開源項目的所有指令、所有設計,你應該有一個感性認識。
在這個基礎之上就是源碼,要讀源碼。讀源碼是一件非常有意思的事,但是在這個過程中,你要學會提問,帶著問題去讀源碼,才會有收獲。
然后就是轉化,轉化包括幾種情況。比如,你可以將容器技術轉化成你們實驗室的某個項目的基礎或者工作中的整個項目。另外,你要學會對項目做貢獻。從最開始的找bug、解決bug、修改文檔,到最后提出自己的特性、融入到社區里,只有這樣你才能夠獲得最多的知識,以最快的速度提高自己在這個領域中的能力。
這三步之后,如果你在這個方面做得更多,可以考慮一些商業化的事情。比如你可以做一些相關的買賣,或者在你的公司里推廣這些開源技術。
問:你覺得讀者應該怎樣使用《Docker——容器和容器云》這本書,讀者在哪個階段需要用到這本書?
這本書應該更適合在第二或第三階段閱讀。
這本書的一個特點就是它傾向于把原理幫你從源碼中抽象出來,而不僅僅帶你走讀代碼。因為代碼很快會過時,所以我們特別注重抽象原理。在第三階段的時候,你要去做開發,所以你對技術的熟悉程度和原理必然要有一個深刻的認識。而這本書的很多實踐章節,包括我們對代碼的整個框架結構的分析,會對你有很大的幫助。
問:《Docker——容器和容器云》的關注點和其他類似的書有什么不同?
首先,我們不認為容器就是Docker,我們認為它只是容器技術一種優秀的實現。所以我們的書叫《Docker——容器與容器云》,我們更關注所有基于容器的云平臺的實現方式。你可以把容器理解為我們現在的虛擬機,把容器云理解為OpenStack,所以我們這本書肯定要先講虛擬機原理,以此為基礎我們才能講清楚容器云,也就是容器的大規模管理方式。
很多目前市面上的書只關注于Docker本身,而我們更關注Docker背后的libcontainer也就是runc的工作原理,于此同時,我們還非常關注所謂的容器技術與大規模容器集群管理的結合方式。我們非常想為大家解決的一個問題就是,真正的大規模容器集群管理應該是什么樣的。我們認為Kubernetes現在的方向是非常好的,所以在書中我們對它做了一個非常詳細深入的解讀,這在國內外應該是首次,而且從谷歌和CoreOS工程師的反饋來看,甚至在國外可能也是第一次。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26467.html
摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技...
摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技...
摘要:在浙江大學實驗室項目組負責的架構研究,以及做與技術結合的實踐。耿輝的最新動態,在的大會發布了等新特性,耿輝為大家帶來前沿的最新動態。介紹耿輝,華為開源軟件戰略專家。 showImg(https://segmentfault.com/img/bVkqvv); Docker 愛好者們,本周六 12.27 的 Docker Meetup #3 約么? 本次的杭州 Docker Meetu...
摘要:今天小數給大家帶來一篇技術正能量滿滿的分享來自社區線上群分享的實錄,分享嘉賓是數人云肖德時。第二級調度由被稱作的組件組成。它們是最小的部署單元,由統一創建調度管理。 今天小數給大家帶來一篇技術正能量滿滿的分享——來自KVM社區線上群分享的實錄,分享嘉賓是數人云CTO肖德時。 嘉賓介紹: 肖德時,數人云CTO 十五年計算機行業從業經驗,曾為紅帽 Engineering Service ...
摘要:相關基于項目和項目,并遵循應用的十二因素風格。相關在設計上,項目盡量保持驅動和模塊化,以便模塊支持不同的實現方案。相關不僅可以管理眾多虛擬機,其計算服務還支持對的驅動,管理引擎的子項目還可用于通過模板管理容器?,F已整合公司所支持的項目。 整理自《Docker技術入門與實踐》 PaaS(Platform as a Service) PaaS 是希望提供一個統一的可供所有軟件直接運行而無需...
閱讀 1057·2021-11-12 10:34
閱讀 984·2021-09-30 09:56
閱讀 667·2019-08-30 15:54
閱讀 2601·2019-08-30 11:14
閱讀 1464·2019-08-29 16:44
閱讀 3202·2019-08-29 16:35
閱讀 2489·2019-08-29 16:22
閱讀 2440·2019-08-29 15:39