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

不要把容器當(dāng)做宇宙的中心!Docker成立十周年:來自1號員工的反思

譯文 精選
云計算 云原生
Docker的誕生,是因為我們看到容器將為我們的行業(yè)帶來一系列必要的變化,但隨著事情的發(fā)展,我們并沒有關(guān)注后續(xù)的需求。由于我們留下了這么多未解決的需求,我們?yōu)槠渌藙?chuàng)造了大量的空間,讓他們可以介入并建設(shè)這些領(lǐng)域。

作者丨Sam Alba

編譯丨諾亞

本文作者Sam Alba目前是Dagger的聯(lián)合創(chuàng)始人兼工程副總裁,也是Docker的前工程副總裁。他于 2010 年作為第一位員工加入 Docker。他領(lǐng)導(dǎo)了工程團隊,將其從三名成員擴展到 100 名成員。隨后,他領(lǐng)導(dǎo)核心產(chǎn)品和工程團隊,負(fù)責(zé)支持各種關(guān)鍵的Docker產(chǎn)品。

Docker最近慶祝了其成立10周年。我為Docker 從過去到現(xiàn)在取得的所有成就感到非常自豪。如果容器沒有成為計算消費的新單元,我們周圍看到的很多東西——基于微服務(wù)的架構(gòu)、Kubernetes 等等——都不會存在。

另外,我敢肯定,當(dāng)你回顧生命中的轉(zhuǎn)折點時,你會更清晰地看到一路走來的得失。這對我來說是千真萬確。事不宜遲,讓我們一起看看當(dāng)初我們做對了什么,又在哪些地方犯了錯。

一、我們做對了三件事

1.容器將改變世界

當(dāng)我在2010年加入Solomon Hykes構(gòu)建DotCloud(后來更名為Docker)時,我很快就意識到,如果我們只使用當(dāng)時存在的工具,我們將永遠(yuǎn)無法實現(xiàn)我們的愿景。

DotCloud是第一個支持任何語言的平臺即服務(wù)(PaaS),而Heroku和其他公司仍然僅限于運行單一語言堆棧。我們在構(gòu)建 dotCloud 時立即面臨的一個限制是缺乏虛擬機(VM)作為關(guān)鍵基礎(chǔ)架構(gòu)構(gòu)建塊的替代方案。雖然虛擬機相對于基礎(chǔ)設(shè)施領(lǐng)域的裸機服務(wù)器向前邁出了一大步,但它們未能提供我們進(jìn)入云原生時代所需的敏捷性。

我們需要足夠輕量級的東西,以便我們可以將每個客戶隔離在他們自己的命名空間(計算、網(wǎng)絡(luò)、存儲)上,同時在一臺計算機上打包數(shù)百個開發(fā)人員應(yīng)用程序。這是微服務(wù)模式的開始。彼時,在基礎(chǔ)設(shè)施可重復(fù)性方面,VM仍然是最先進(jìn)的技術(shù),而容器仍然是一種鮮為人知的技術(shù),只有少數(shù)修修補補者才能使用(還記得LXC需要一個內(nèi)核補丁來連接到運行中的容器上嗎?)其他人認(rèn)為解決方案是讓VM進(jìn)行零碳水飲食(還記得JeOS嗎?)。

我們很清楚,盡管面臨各種挑戰(zhàn),但圍繞容器構(gòu)建一切都是值得的。最終,事實證明我們是對的。幾年后,我們提取了DotCloud平臺的核心組件:容器運行時。我們重寫了它并開放了它的源代碼。這是Docker的第一個版本。最初的目標(biāo)是讓Docker成為從DotCloud中提取的眾多開放組件中的第一個。容器編排器,即網(wǎng)絡(luò)層,將緊隨其后。但是考慮到Docker在早期獲得的即時關(guān)注,時間表發(fā)生了很大的變化。

2.開發(fā)人員是重中之重

史蒂夫·鮑爾默是對的。VMware 主要專注于為 IT 解決問題,而我們很早就意識到,改變世界的方式是專注于全球的軟件開發(fā)人員。你必須改變軟件的構(gòu)建方式,而不僅僅是操作方式,這意味著首先從開發(fā)人員的需求開始。

作為一個管理過數(shù)千名開發(fā)人員的人,我非常清楚軟件開發(fā)人員每天面臨的挑戰(zhàn)。這可能是世界上最令人難以置信的工作之一,充滿了具有挑戰(zhàn)性的問題和創(chuàng)造美好事物的滿足感,但它也可能是乏味的、令人沮喪的,有時甚至是令人憤怒的?;A(chǔ)設(shè)施和工具取得了巨大進(jìn)步,但標(biāo)準(zhǔn)也提高了。

我們在Docker的目標(biāo)是減少干擾、成本,讓開發(fā)人員高效協(xié)作。最早的收購(和成功的產(chǎn)品集成)之一是一個名為“Fig”的產(chǎn)品,后來成為Docker Compose,最初由Ben Firshman(現(xiàn)Replicate創(chuàng)始人)和Anand Prasad構(gòu)建。

有趣的是,由Fig (composition .yml)實現(xiàn)的YAML模型直接受到了我們幾年前構(gòu)建的第一個DotCloud服務(wù)組合(DotCloud .yml)的啟發(fā)。雖然我們?nèi)〉昧撕艽蟮倪M(jìn)展,但還有更多的工作要做,特別是超越容器作為唯一單元和編排容器管道的范圍。這就是我們在2018年啟動Dagger的原因之一,這是一個可編程的CI/CD引擎,可以在容器中運行你的管道。

3.投資建設(shè)充滿活力的社區(qū)

我們首先專注于建立一個偉大的社區(qū)。從第一天起,我們就相信我們無法獨自實現(xiàn)我們想要實現(xiàn)的目標(biāo)。它需要贏得一大群人的心,而實現(xiàn)這一目標(biāo)的關(guān)鍵是放棄對很多事情的所有權(quán)。DockerCon 成為我們行業(yè)中許多最優(yōu)秀和最聰明的人的聚集地,人們聚集在一起,他們對事物如何發(fā)展有著共同的愿景,并愿意卷起袖子投入建設(shè)它。

在Docker的早期,當(dāng)我們考慮自己舉辦開發(fā)者大會時,最初聽起來像是一個遙不可及的夢想。要么適用于大公司,要么適用于更成熟的開發(fā)人員社區(qū),例如 PyCon。但是,當(dāng)我們于 2014 年 6 月在舊金山組織了第一屆 DockerCon 并能夠在同一地點聚集一些才華橫溢的開發(fā)人員時,很明顯,這是將顛覆整個公司和行業(yè)的劃時代的開端。

今天,在我們行業(yè)中看到的數(shù)十個(或者數(shù)百個?)開源項目和社區(qū)中,這種遺產(chǎn)仍然很強大。今天,云原生計算基金會(Cloud Native Computing Foundation)成為了其中許多項目的東道主,而且每天還會有更多的項目涌現(xiàn)出來。

二、我們做錯的三件事

1.選擇與盈利

“社區(qū)優(yōu)先”的另一面是,我們花了太長時間來建立一個可持續(xù)的業(yè)務(wù)。我們傾向于公開做所有事情,認(rèn)真傾聽社區(qū)的需求,并盡我們所能為他們提供服務(wù)。該策略的最初基礎(chǔ)是開源項目和商業(yè)專有解決方案可以很好地共存,并成為同一客戶旅程的一部分。

我今天仍然相信這個模式,但這是一種棘手的平衡。

首先,你必須接受一些開源貢獻(xiàn)者和用戶永遠(yuǎn)不會成為客戶的事實??紤]到他們參與建立一個強大的社區(qū),一個強大的品牌,這對商業(yè)渠道的增長有貢獻(xiàn),因而也沒關(guān)系。其次,產(chǎn)品架構(gòu)必須允許在核心開源基礎(chǔ)上構(gòu)建企業(yè)級功能。這通常伴隨著復(fù)雜的支持和發(fā)布過程。我們本可以在創(chuàng)建穩(wěn)固業(yè)務(wù)的道路上更具戰(zhàn)略性。最終,我們到達(dá)了那里,但花了太長時間,也因此經(jīng)常感到害怕。

2.團隊文化

我們沒有在早期定義團隊文化和核心價值觀。它是后來由社區(qū)或后來加入公司的人定義的。這導(dǎo)致我們的團隊文化從早期開始就發(fā)生了巨大的變化,一開始并不明顯。我們的文化最終反映了社區(qū)中人們的風(fēng)格和價值觀,而不是相反。

我們犯錯的一個具體例子是,我們公司有兩個獨立的團隊——一個專注于開源和社區(qū),另一個專注于業(yè)務(wù)。這是我最大的遺憾之一。

它在內(nèi)部工具,產(chǎn)品和項目管理以及最重要的團隊文化本身方面變成了一個分裂的大腦。每個人都很難平衡這些相互競爭的利益,但當(dāng)你把角色分開時,你最終會陷入內(nèi)部斗爭、不一致和永遠(yuǎn)無法解決的公開辯論(從他們的角度來看,每個人都是對的)。

許多最優(yōu)秀和最聰明的人都想在社區(qū)方面工作,而在我們的許多合作中,往往會對另一方產(chǎn)生微妙(或不那么微妙)的判斷。有時感覺我們讓“開源信仰者”與“企業(yè)賺錢者”對立起來。這樣做毫無成效。要同時擁有一個充滿活力的社區(qū)和一個可持續(xù)發(fā)展的業(yè)務(wù),就需要一個整合的團隊,讓每個人都與我們的模式自然產(chǎn)生的固有緊張關(guān)系作斗爭。這也創(chuàng)造了更好的團隊文化。不管你在公司的哪個部門工作,你只需要關(guān)心一套目標(biāo)。

3.將容器作為宇宙的中心

當(dāng)我退后一步時,我意識到我們過于依賴容器了。我們開始將容器視為大多數(shù)問題的核心解決方案。這讓我們忽視了開發(fā)供應(yīng)鏈的其他需求。

Docker的誕生,是因為我們看到容器將為我們的行業(yè)帶來一系列必要的變化,但隨著事情的發(fā)展,我們并沒有關(guān)注后續(xù)的需求。由于我們留下了這么多未解決的需求,我們?yōu)槠渌藙?chuàng)造了大量的空間,讓他們可以介入并建設(shè)這些領(lǐng)域。

一方面,這留下了巨大的機會,另一方面也意味著社區(qū)的分裂。我們在Docker沒有解決的挑戰(zhàn)之一是軟件供應(yīng)鏈的整體自動化。我們在供應(yīng)鏈的末端釋放了如此多的價值,但卻沒有充分解決開發(fā)人員編碼和協(xié)作時的需求,今天的CI/CD仍然是一團糟。但這是一個可以解決的爛攤子。像那個時代的許多其他人一樣,當(dāng)Solomon Hykes,Andrea Luzzardi和我回顧我們在Docker的時光時,我們意識到我們的革命仍未完成,因此我們找到了下一個十年的使命。

參考鏈接:https://thenewstack.io/docker-at-10-3-things-we-got-right-3-things-we-got-wrong/

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2013-09-25 16:00:40

FedoraLinux

2012-05-16 10:13:53

紅帽Linux

2010-04-13 09:14:48

大型機Linux

2009-04-08 11:28:19

IDF歷史IDF簡介

2010-12-15 13:08:11

豪藝博雅

2018-09-26 17:12:16

Chrome瀏覽器cookie

2012-04-19 16:28:44

2012-05-18 10:21:40

紅帽

2011-03-25 09:58:30

Mac OS X

2015-12-17 11:35:35

CIO時代網(wǎng)

2015-03-19 11:10:52

GNU宣言

2014-04-08 13:29:38

BASIC

2018-08-30 21:35:00

App StoreFacebook印象筆記

2009-04-08 12:35:56

NehalemIntel服務(wù)器

2023-05-30 11:34:40

React開源Canary

2012-01-04 09:51:08

Mac OS未來

2014-07-25 19:32:10

XToolsCRM

2009-06-22 16:56:25

微軟MSN

2010-10-19 13:35:38

開源社區(qū)OpenOffice.
點贊
收藏

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