又是一年OSCON大會,今年云基礎(chǔ)設(shè)施成了所有技術(shù)人士最為關(guān)心的熱門詞匯。而其中最炙手可熱的新興項目正是Docker,這款超輕量化集裝箱式應(yīng)用可謂充滿發(fā)展?jié)摿Α?/p>
我正好遇上了Docker服務(wù)副總裁James Turnbull,他在本次大會上組織了一個Docker速成班。除了討論Docker到底是什么之外,我們還交流了關(guān)于云、開源貢獻(xiàn)以及借此獲得工作崗位方面的話題。
你曾經(jīng)撰寫過幾本討論Linux學(xué)科的書籍。你是以怎樣的機(jī)緣與Linux相遇的?你為什么會在這方面迸發(fā)出如此熱烈的激情?
我記得我第一次接觸Linux是在上世紀(jì)九十年代中期,當(dāng)時Debian系統(tǒng)才剛剛推出不久。我之前曾經(jīng)使用過OS400、VAX/VMS以及SunOS,但這些經(jīng)歷僅僅局限在企業(yè)環(huán)境當(dāng)中。平心而論,“開源”這個概念并沒有強(qiáng)大立刻將我牢牢吸引住。在此之后我遇上了Linux,這相當(dāng)于我一夜之間擁有了自己的臺式規(guī)格計算機(jī),其中運(yùn)行著在背后支持互聯(lián)網(wǎng)的設(shè)備完全相同的工具與服務(wù)。這簡直讓我興奮得想要尖叫。同樣重要的是這套系統(tǒng)完全免費(fèi),也就是說我不需要為硬件及操作系統(tǒng)軟件支持高昂的使用成本、卻也同樣能夠利用它們實(shí)現(xiàn)夢幻般的構(gòu)想。接下來,我發(fā)現(xiàn)免費(fèi)只是其特性的一部分、真正重要的是我能夠獲得它的源代碼。換言之,如果出現(xiàn)組件損壞或者想要更多功能,我們自己是有辦法實(shí)現(xiàn)的(或者至少可以嘗試加以解決)、或者與其他技術(shù)大牛交流以學(xué)習(xí)如何實(shí)現(xiàn)。這種前所未有的參與感加上開源技術(shù)社區(qū)的逐步成長壯大真的令我驚訝萬分。從那時候開始,我就一發(fā)不可收拾地愛上了開源。
你的個人簡介中提到你的“真正工作崗位”是Docker服務(wù)副總裁。莫非你在其它開源工作中的努力完全屬于個人愛好?
這其實(shí)是我的合作伙伴開的一個小玩笑。跟大多數(shù)“極客”一樣,我總愛坐在自己的計算機(jī)前面,忙于通過敲打解決問題或者編寫新項目。我的合作伙伴笑言我擁有兩份工作:“真正”工作和開源工作。多虧了過去兩年中在Puppet實(shí)驗(yàn)室以及Docker項目當(dāng)中的經(jīng)歷,我終于能夠?qū)⒆约旱募で檗D(zhuǎn)化為實(shí)實(shí)在在的經(jīng)濟(jì)收入了。
開源貢獻(xiàn)者們大多喜歡這樣表達(dá)自己的工作性質(zhì);在開源領(lǐng)域,個人愛好與專業(yè)工作之間的界線確實(shí)非常模糊。你覺得這是一種積極的影響、還是帶有消極性?
我認(rèn)為從不同的角度出發(fā),這樣的思維方式既有積極性也有消極性。積極的一面是,我們在自己的工作中用于解決問題的方案(例如構(gòu)建工具、修復(fù)漏洞或者編寫說明文檔等)可以被共享給其他用戶,從而幫助對方輕松解決同類問題或者更快找到正確答案。但從消極的角度看,把熱情與工作結(jié)合得太過緊密往往會讓人感到有種任務(wù)“無處不在”之感。
我還意識到,這種愛好與工作之間的模糊界線給整個行業(yè)的多樣性乃至開源社區(qū)帶來了怎樣的影響。新興企業(yè)領(lǐng)域有這樣一種看法,認(rèn)為只有在GitHub上擁有一定成績并為開源項目作出貢獻(xiàn)的開發(fā)者才是優(yōu)秀的開發(fā)者。我個人非常幸運(yùn),因?yàn)槲矣袝r間、金錢和必要的教育背景來支撐自己為開源作貢獻(xiàn)的決定。但很多其他參與者沒有這樣的資源儲備,而且參考的都是些涵蓋范圍很廣但針對面卻過窄的開源社區(qū)調(diào)查結(jié)論,例如:白人、男性、受過高等教育。這種對“優(yōu)秀”開發(fā)者的定義已經(jīng)成為一種封閉的招聘體系,而且長期以來在開源乃至整個IT業(yè)界一直普遍存在。我認(rèn)為這是我們迫切需要改變的狀況。
你是怎樣接觸并參與到Docker項目當(dāng)中的?
我在Solomon將Docker項目開源化不久之后就參與到了其中。我對于LXC與容器技術(shù)擁有一定了解(過去曾經(jīng)做過與Solaris Zones以及IBM硬件上LPAR相關(guān)的工作),因此我決定在這里一試身手。它的易用性確實(shí)給我留下了不可磨滅的深刻印象。在與容器方案真正打交道之前,我一直將其視為非常復(fù)雜的技術(shù)體系,需要大量調(diào)整與前續(xù)培訓(xùn)才能順利上手。然而Docker卻實(shí)現(xiàn)了開箱即用這一偉大目標(biāo)。就在見識到Docker以及由其構(gòu)建的以CI/CD為核心的工作流程之后,我瞬間成為它的忠實(shí)擁護(hù)者。
Docker已經(jīng)在虛擬化與云計算領(lǐng)域掀起了一股新的瘋狂熱潮。人們?yōu)槭裁磿槠淙绨V如狂?
我認(rèn)為其核心吸引力在于Docker能夠?qū)⒆陨淼妮p量級特性與工作流程相結(jié)合。它速度極快、易于使用而且屬于一套以開發(fā)者為核心的DevOps類工具。它的任務(wù)非?;A(chǔ):讓代碼易于打包并發(fā)布。開發(fā)者們一直希望擁有可以通過抽象方式簡化此類細(xì)節(jié)處理流程的工具方案。他們的訴求很簡單——讓自己的代碼正常運(yùn)作。聽起來簡單,但實(shí)際執(zhí)行中卻復(fù)雜無比。開發(fā)者們往往面臨著與系統(tǒng)管理員之間的各種沖突——代碼在開發(fā)者的環(huán)境中明明能夠正常起效,但在發(fā)布后卻問題連連。Docker這位救世主以最大可能讓我們的代碼變得便捷且綠色,從而保證其能夠輕松為用戶在各類環(huán)境下正常使用。
在你看來,Docker項目最激動人心的潛在用途是什么?
絕對是建立執(zhí)行流程。我的意思是,我曾親眼見過很多技術(shù)人員利用容器機(jī)制建立起規(guī)模龐大的運(yùn)作體系,事實(shí)上大家可以在一臺主機(jī)上容納眾多容器、它們的運(yùn)行速度都很快。但這還并不足以讓我為之瘋狂——真正的亮點(diǎn)在于,人們可以利用它自動構(gòu)建起屬于自己的開發(fā)、測試與創(chuàng)建流程。
Docker與其它標(biāo)準(zhǔn)化虛擬方案有什么不同?
Docker屬于操作系統(tǒng)層虛擬化方案,這一點(diǎn)與管理程序類虛擬化技術(shù)不同。后者將虛擬機(jī)通過中間層(也就是‘虛擬機(jī)管理程序’)運(yùn)行在物理硬件之上,而容器則將用戶空間運(yùn)行在操作系統(tǒng)的內(nèi)核之上。這樣的設(shè)計使其極端輕量化而且擁有出色的速度表現(xiàn)。
你覺得云技術(shù)的發(fā)展是否已經(jīng)受到開源發(fā)展趨勢的深層影響?
我認(rèn)為開源軟件與云計算之間緊密相關(guān)。二者在形式上都是讓軟件運(yùn)行在云環(huán)境當(dāng)中,而其開發(fā)模式也都能夠與云相對接。開源軟件成本低廉,而且通常不會與效率以及許可產(chǎn)生什么激烈的沖突。
你覺得Docker會給虛擬化以及云環(huán)境帶來怎樣的改變?你是否認(rèn)為云技術(shù)已經(jīng)擁有自己的一條堅實(shí)發(fā)展軌跡,抑或是仍然存在較為寬松的自由變化空間?
我認(rèn)為Docker擁有大量適合處理的工作負(fù)載,正如我之前曾經(jīng)提到的眾多容器在超大規(guī)模領(lǐng)域的應(yīng)用以及開發(fā)、測試、創(chuàng)建類用例。我完全相信將有相當(dāng)多的企業(yè)用戶與供應(yīng)商樂于將Docker當(dāng)成虛擬化實(shí)現(xiàn)層面的備選方案,包括裸機(jī)與云環(huán)境這兩大模式。
至于云技術(shù)的發(fā)展軌跡,我認(rèn)為我們在過去幾年中已經(jīng)親身體驗(yàn)到了其前進(jìn)方向的顯著變化。我覺得在真正迎來結(jié)局之前,這樣的變化還將繼續(xù)存在。其中最大的變數(shù)源自O(shè)penStack及其能否成為晉升為IaaS備選方案或者DIY云解決方案。在我看來,我們目前僅僅觸及到PaaS的潛在可能性,這一領(lǐng)域還擁有大量成長與發(fā)展的空間。大家不妨繼續(xù)關(guān)注PaaS產(chǎn)品在功能與容量上將如何發(fā)展,又能否變得與消費(fèi)級云產(chǎn)品相融合或者說對接——這也是未來幾年中值得認(rèn)真考量的重要因素。
你能為我們簡單介紹一下,在今年的OSCON大會上Docker會帶給我們哪些新鮮內(nèi)容嗎?
我們將組織一輪Docker速成培訓(xùn)班,目的在于幫助開發(fā)人員與系統(tǒng)管理員以易于上手的方式邁出踏向Docker道路的第一步。我們的教程涉及如何使用Docker以及如何將其與用戶的日常工作流程相結(jié)合。