谷歌首蓆工程師:未來Kubernetes應該消失

字號+ 編輯: 国内TP粉 修訂: 种花家 來源: 2023-09-12 我要說兩句(0)

本文是對 Google Cloud 首蓆開發者倡導者 Kelsey Hightower 的採訪,他也是谷歌首蓆工程師,自 2014 年以來,一直是 Kubernetes 的布道者和持續貢獻者,他在雲原生技術領域特別是 Kubernetes 方面非常有經驗。採訪中,Kelsey 與主持人 Martin Woodward 和 Neha Batra 探討了關於培育蓬勃發展的開源社區的理念,以及他對 Kubernetes 未來狀態的定位。

下面是採訪内容。

Neha:很高興你能接受我們的採訪。我們稍後會深入探討一些關於維護者的細節問題。我想先聽一下你在成長和發展方面的一些想法。比如,你在這個領域的理念是什麽?是自學和嘗試各種方法嗎?

Kelsey:對我來說,我試圖將整個人融入到這個發展過程中。在我從事技術工作之前,我曾在快餐行業工作。對我來說,進入技術領域是爲了生存。因此,自學成爲了首選項,主要是因爲它是最容易獲得知識的途徑。

你可以在 1999 年去書店購買關於任何主題的書籍,感覺就好像你也獲得了那些有機會接受高等教育的人們所擁有的學位。自學我認爲這其實是在通過從未見過面的作者們的教導來學習。因此,它變成了一種感覺,感覺只需要讀一本書就能掌握任何事情。

v2-1be4f08450d3cbc1616f0564c8f1d2dd_1440w.jpg

Martin:是的,我的意思是,我們在某些方面很幸運,在 80 年代末和 90 年代初成長起來,因爲你可以去書店學一點東西。有時候,當我看到在參加編程訓練營或者剛剛進入技術行業的人時,我感到非常震驚,因爲他們現在需要了解的技術範圍非常廣泛。而我們只需要逐步學習一點點。

那麽現在你是如何提升自己的技能呢?因爲學習永遠不會停止,對嗎?當你覺得某個事情值得探索時,你有什麽想法?你如何在時間和精力上進行優先排序?

Kelsey:我意識到有一個關鍵點,那就是基礎知識比人們普遍認爲的更爲重要。如今,很多開源項目因爲它們的受歡迎程度、標志和花哨的名稱而備受關注。這通常與炒作有關。人們往往會被新事物所吸引。

在我成長的過程中,我是通過 FreeBSD 來學習 Unix 的。當然,Linux 也已經問世,還有其他可用的選擇,但我碰巧選擇了 FreeBSD 並深入學習。我學習了有關 FreeBSD 的一切,包括它作爲操作系統的工作原理、更新和升級方法。

我記得我第一次技術面試時,所有的問題都是關於 Linux 的。在面試過程中,有一刻我無法回答問題,因爲他們想要的是關於 Linux 的具體知識,而我只熟悉 Unix,並不熟悉 Linux 的細節。面試小組中有三個人,其中一位面試官問我:“你指的是哪個 Unix 發行版?” 我回答說:“FreeBSD。” 幸運的是,他正好在腿上有一個 FreeBSD 的紋身。

然後,他將整個面試的重點轉向了討論 freeBSD。我能夠運用我的基礎知識進行模式匹配並給出非常詳細的回答。當我開始這份工作時,我發現所有我在 freeBSD 上學到的技能都可以遷移到 Linux 環境中。所以在我的整個職業生涯中,我一直專注於當前所面對的技術,無論是編程語言還是網路交換機,我都會盡可能地了解它們,因爲我知道有 80% 的知識是相通的。

因此,當我看到今天出現的新項目時,我會關注所有的流行詞滙和花哨的東西,然後回歸到基礎知識,問自己:“這個項目實現了多少基礎知識,它在這個領域有什麽新的創新?” 我發現在那一點上,我只需要掌握其中的 10% 的差異,就能真正理解。其他的問題可以通過提問來解決。

Neha:所以我覺得你談到的一些東西真的與我産生了共鳴。你知道,我也是自學成才的,我認爲在深入研究一個主題時,能夠掌握其中的基本原理非常重要。專注於深入研究一件事情,這不僅適用於學習,也適用於教學。我很好奇,當你考慮自己在學習和教學中的方法時,你是否認爲這兩者是不同的?你是否運用了不同的技能組合?如果是的話,具體有哪些不同之處?

Kelsey:對我來說,這確實是兩個不同的方面。當我從別人那裡學到東西時,我嘗試將其複述出來。你知道,在交談中,如果我理解得正確,即使你有一點錯誤,人們也會糾正你,告訴你 “接近了,但不完全正確”。這種反餽循環會加速學習的過程。因此,這需要一些勇氣。

很多時候,在公開學習的過程中,你會暴露自己。所以你必須非常小心,不要給人一種權威的形象。你不想表現得像是在說:“這就是答案。” 因此,我喜歡將一些事實和一些觀點結合起來,用它們來指導我的學習。比如說:“嘿,這是我學到的東西,這是我對它的看法,如果這是正確的。” 然後其他人會幫助我完善我的思維模式,確保我真正理解了那個主題。

另外,我喜歡利用自己所學的知識來構建一些東西,特別是在學習技術領域的知識時。我可能會構建一個小原型,或者以 “Hello World” 的水平來實踐一些東西,然後我會願意分享出來。我會將自己的筆記放在 GitHub 上,就像一個完整的文档。比如,我最近學習了服務網格的概念,我會建立一個小原型來鞏固我所學到的知識,並將它放在 GitHub 上供他人參考,這或許可能幫到你。

Martin:是的,這實際上一直是困擾我的問題,因爲我從來沒有認爲自己是某個領域的專家。你知道我是什麽意思嗎?或許有某項超級小衆的技術,現在已經沒人使用,我可能是這方面的專家,因爲實際上沒人關注它了。但其他方面,我一直在不斷學習。

有時我很困惑,不知道什麽時候該進行實驗和工作,也不知道如何將其與我正在做的工作區分開來,因爲我正在做的工作才能維持我的開源項目正常運行。你是如何在開源項目中處理創新和實驗的需求,以及穩定性和可靠性方面的平衡的?你是如何分配時間的?

Kelsey:是的。我認爲我在某個時刻意識到,你無需成爲專家級人物,只需要進入前一萬名即可。只要你在某個領域中排在前一萬名,那意味著你幾乎可以在世界任何地方找到工作。這樣壓力會很小。那麽你要與誰競爭呢?你可以試圖與那些在職業生涯中只專注於某個領域的專家競爭。而我選擇的是超越過去的自我。

也就是說,如果我在使用 Go 語言編程,我希望了解 Go 編程語言的工作原理。爲什麽只有 32 個或 30 多個關鍵字,這些關鍵字的作用是什麽?它們對 Go 的運行時或 Go 的内存管理有何影響?我可能會花一些時間閲讀關於内存管理的文档,了解作爲開發人員,它對我的好處是什麽?然後,你可以閲讀其他編程語言中關於内存管理的歷史資料。

所以我認爲有一個時間段,如果你只有一周(五個工作日),你可以將其中一天留出一大塊時間用於學習。遠離鍵盤,確保自己對這些基本原理有清晰的理解,這是非常有價值的。

我舉個例子吧。我開源了一個名爲 Conf-d 的項目。它像大多數開源項目一樣起步,我試圖解決自己的一個問題。於是我構建了一個只解決這一個問題的工具,並決定將其開源。

也就是說,我與他人分享這個工具,但只有當別人有與我相同的問題時,它才對他們有用。我並不試圖成爲滿足所有人需求的工具。然後有一天,有人說:“嘿,Conf-d 很棒。它是一個很好的將鍵值轉換爲應用程序配置的工具。但我們真的需要加密功能。” 當時我陷入了困境,因爲我對在這個工具中添加加密功能並不熟悉,我不清楚其中的權衡。

所以我花了兩周的時間,專門研究了正確的加密方法。我思考應該在我的工具中本地實現加密,還是依賴鍵值存儲,在運行時進行解密。在這個過程中,我學習了各種不同的方法,還嘗試了其他開源項目。作爲維護者,其實並不需要從零開始解決所有問題,你可以參考其他維護者在他們的項目中選擇的解決方案,這可以爲你提供一些指導。

所以當我進行第一次實現時,我是公開介紹的。我發布了一個測試版,並邀請其他人嘗試使用,開發者社區非常願意提供反餽。“這不是正確的方法!”“現在已經沒有人使用這些加密算法了。” 他們給出了反餽,我會回應:“好的,我聽到你的意見了,有更好的想法嗎?” 然後我會根據他們的建議對我的原型進行改進。這一直是我的方法。對我而言,我知道我在做什麽。我將這些學習當作是對未來的投資,我知道這將在將來帶來巨大的回報。因此,我會願意花時間去學習。

Martin:這是一種很好的方式,以對未來的 Kelsey 給予應有的尊重和關懷。有時候,我們對待自己的未來時,可能沒有那種尊重。你知道,我們給自己安排了各種事情,但從來不會投資於自己,使未來的自己比現在更好。

你對處理不同的開源社區有很多經驗。正如你所說,人們有時會非常自由地表達自己的意見。那麽你是如何處理這些情況的呢?例如,意見不合、沖突之類的情況?在你的所有項目中,每當我參與其中,你總是營造出一種非常積極的環境。你是如何做到這一點的?我猜想這是非常有意識的。

Kelsey:我覺得如果你曾經嘗試維護自己的開源項目,希望你能培養起一種共情的感覺。當我開源了 Conf-d 這個項目時,我非常興奮。我記得參加 FOSDEM 這個在歐洲非常受歡迎的開源會議時,我進入了一個關於配置管理的演講。我看著有人演講時提到了 Conf-d。我從未見過這個人。我的内心被震撼了。

這個人在談論這個令人驚豔的工具,它改變了我們對配置管理的思考方式。而我只是坐在後排交叉著雙臂,像是說 “天哪,他在談論我創建的東西”。所以我不再只是開源的用戶,我也成爲了一個貢獻者。更好的是,我成爲了一個維護者。我記得我經歷了很長時間的情緒高漲,因爲我能夠對一個在全世界範圍内被人們認可的東西産生影響。

然而,我也記得要給自己留出時間,因爲這種高漲是會消退的。想象一下那個周六早晨,當你醒來後發現你的郵箱被來自那些你不使用、也沒有計劃使用的功能請求所淹沒。而你卻是在你的空閑時間免費工作。人們會非常苛刻地要求 “這個問題需要盡快解決”。而這一切都是免費的。

當你看到他們的電子郵件地址時,他們是那些完全有能力支付這個軟體或實現這個改變,並提交一個拉取請求的大型組織的員工。你不想讓社區失望,所以你不得不努力工作,即使非常疲勞。

所以,你放慢了腳步,勇敢地與人溝通。我不能滿足每個人的需求,所以我們對項目進行了範圍限定。我們決不會添加某個功能。有些人對此感到不滿,因爲你做出了決定。但我意識到必須做出決策。將所有這些經驗和另外一個幫助我認識到的經歷結合在一起,我有一個口號叫做 “不同的公司,同一個團隊”。

在開源社區中,我們來自不同的組織。有時我們在技術堆棧的高層競爭,但在底層,我們都是希望實現這些想法的人。盡管我們的公司不同,但我們仍然可以合作。

我記得有一次我拒絕了一個對 Conf-d 非常重要的功能請求。HashiCorp 的團隊開發了一些很棒的工具,包括 Consul 和 Vault。有人提出了一個要在 Conf-d 中添加 Vault 支持的請求,即在 Vault 中加密所有的秘密,然後 Conf-d 會獲取並提供良好的應用配置。

但是,我拒絕了這個請求。於是 HashiCorp 的團隊開發了一個競爭性的工具,叫做 consul template,可以實現我拒絕的所有功能。他們發布後,在 Hacker News 上成爲了排名第一的帖子。社區的反應是:“哇,你們這樣對待 Kelsey 太過分了。你們這個賺錢的大公司,竟然直接與他競爭,而不是爲他的項目做出貢獻。”

但是,他們並不知道事情的全貌。他們不知道我們進行過一次私下交流,我認爲對於 Conf-d 來說,拒絕是正確的決定,而對於 consul template 來說,接受是正確的決定。我非常贊賞 Mitchell Hashimoto 和 HashiCorp 團隊接過 Conf-d 的想法,並以滿足他們社區需求的方式繼續發展。這減輕了我的壓力,同時也滿足了社區的需求。這就是開源的力量,在競爭中尋求合作。

作爲一個維護者,我對所有這些情況都充滿了共情。當我參與一個新項目時,我會牢記維護者的立場。他們有權拒絕。他們可能快要疲憊不堪,而我卻向他們請求幫助,盡管他們已經爲這個項目的可用性做出了巨大貢獻。

因此,共情讓我真正地尊重人們,以正確的方式參與其中。你要了解那個代碼庫,編寫那些單元測試,別忘了文档。我認爲這是參與任何開源社區的正確方式。

Neha:我認爲這個話題討論非常有幫助。你剛才提到了在周六早上醒來時看到所有的開放問題,我的心跳加快了,因爲我知道你無法應對所有的問題。你必須說不,對嗎?這就是關鍵所在。

我們在 The ReadME 項目中有很多維護者分享了他們在管理貢獻者關係方面的經驗,無論是在早期和較小的項目中,還是在後期和較大的項目中。對於那些希望平衡時間管理貢獻的維護者,你有什麽建議?我很好奇你能否給他們更多的幫助。像管理時間這樣的事情,除了說不之外,你還有什麽建議嗎?

Kelsey:是的,如果你是一個維護者,我們總是關注技術路線圖。下一個版本會有哪些内容?這個項目兩年後應該達到什麽樣的目標?但我們往往忽視了一個隱藏的路線圖,即誰將在兩年後接手維護這個項目,這個人可能不是你。因此,我認爲我們應該早早考慮繼任計劃。

當你在社區中發現有人積極貢獻,並展現出與你一樣的關心和熱情時,這就是你想要給他們授予提交權限的人選,對嗎?他們已經证明了自己的價值。如果你發生了某些情況,比如疲勞不堪、轉換工作或不再使用該工具,你希望有其他人能夠接替你的角色。

因此,作爲維護者,你應該始終考慮下一批維護者是誰,設定一些標準,並盡早確定。這樣,你就可以給那些有意願接手的人提供機會,減輕你的負擔,一起合作。

我認爲很多時候,當你是一個非常受歡迎的項目的維護者時,你會感覺自己處於上帝模式。你不想放棄這個角色。每個人都對你贊美有加,你的統計數據看起來很好。大家都喜歡在 GitHub 上展示那些圖表。

但有時你必須明白,你需要分擔一些責任。這就是良好的長官力所在,找到下一批長官者。所以這就是我的建議。要考慮長遠發展,這就像你在進行一場馬拉松比賽,有時你需要將這場比賽變成接力賽,找到一個在適當時候可以接過接力棒的人。

Martin:是的,我認爲我生活中犯過的一些最大錯誤就是當我的自我膨脹起來並且成爲阻礙的時候,不僅在技術細節方面,還包括與開源項目合作。因爲我們喜歡得到贊揚,我們喜歡讓人們開心,我們喜歡解決問題,所以有時候我不得不退出過去參與的項目。當我退後一步的時候,有時候我會覺得很難,因爲好像沒有其他人能夠填補那個空缺。

但事實上,當我退後一步時,社區反而會受到激發。你知道,有時候你需要一些勇氣相信,哪怕在你的勞動沒有人感謝的時候,工作仍然是有價值的。當你減少了工作量,並且有其他人可以共同合作時,價值就會以一種不同的方式得到體現。這是一種信任的升級。

Neha:我一直在思考爲什麽在這樣的情況下退後如此之難。我認爲其中一個原因是,當你提供免費的勞動時,必須有一些東西讓你覺得這是值得的。當人們對你表示感謝和贊賞時,你會覺得這一切都是有價值了。

但是,如果你沒有得到這種對免費勞動的感激,就很難意識到工作仍然是有價值的。然而,當你減輕了工作負擔並與他人合作時,它最終會以一種不同的方式變得有價值。你正在過渡到一種獲得價值的不同方式,而這種過渡是需要一些信任的。

Kelsey:作爲開發者,這是我們能夠自由構建任何我們想要的東西的清潔畫布,對吧?沒有 OKR(目標與關鍵結果),沒有公司壓力。

對吧?我們有決策權。就像藝術家自由繪畫一樣,這對於全職或兼職從事開發工作的人來說是一種非常有力的表達方式。你可以按照自己的節奏前進,你可以決定。你可以將你相信應該存在的東西實現出來。這就是我們能夠做到的方式。

我非常贊賞一些維護者,他們也經歷過這一點。比如 Ben Johnson,我在 CoreOS 工作時遇到過他,他實現了 RATH Library,這是我們用於構建分布式系統的工具。嗯,他是當時唯一的實現者,尤其是以 Go 語言實現的,而且每個人都在使用它。大型商業數據庫項目都依賴於此。而他只有一個人來負責維護如此重要的基礎設施組件。雖然他從未承認過,但我知道他精疲力盡了。

而在他的新項目中,他做了一件非常明智的事情:在 README 的頂部,他非常明確地告訴你:“我們不打算添加很多新功能。實際上,我們不希望有很多拉取請求。我們目前只評估缺陷修複。你看到的就是它的樣子。而這是我對你的承諾:這個東西的功能是有限的。我會盡我最大的努力保持它的真實性。至於新功能,我們不需要。對吧?如果你不能接受這一點,如果你看到右上角,那裡有一個神奇的 Fork 按鈕。你可以點擊它,這段代碼就成爲你自己維護和添加所有你想要的功能。”

我認爲這是一種正確的做法,尤其是對於一個獨立的開發者來說,你知道你的瓶頸是什麽。這是一個非常好的做法,給予人們,並且我認爲他們可以尊重這一點。

Martin:是的,絕對沒錯。我從一個叫做 Brad Wilson 的人那裡學到了這一點,他負責 Darknet 空間中的 X 單元項目。這個框架非常具有觀點性。他很早就非常明確地表達了這一點,就像這是我們的觀點。這與你之前提到的有點相關,Kelsey,關於在自己的時間中創作藝術並保持創造力。有些最好的藝術作品也是在一定的限制下産生的。

所以,在早期清楚地向社區闡明這些限制、明確核心理念的同時,幫助人們理解社區的發展方向非常重要。並不是說每 5 分鍾就有人會提出:“你能做 X、Y、Z 嗎?” 你必須回答 “不行”,因爲這是我們的理念。你不得不提醒人們,並偶爾需要這樣做。但通常情況下,你會發現社區會提醒人們,你不必親自去做。

Kelsey:有一句話徹底改變了我對作爲維護者意味著什麽的看法。這句話是:“有些人有想法,而有些想法有人”,而作爲維護者,你就是那個有想法的人。你是項目的守護者。我意識到,創建原型是將這些想法呈現出來並鼓勵人們接受並發展這些想法的最佳方式。

所以,看吧,我不會編寫任何單元測試。我會編寫文档,因爲我希望人們能夠充分理解這個想法。我希望他們能夠用可以觸摸和實際可行的東西來探索這個想法,而且有些人真的從中獲得了價值。然後我鼓勵人們,這只是一個起點。

如果你將其發展得更好,你應該得到所有的榮譽。事實证明,通過以這種方式開展項目,你可以構建更多的項目,並讓它們蓬勃發展。所以,你成爲了想法的維護者,而不僅僅是開源代碼庫的維護者。

Martin:是的。嘿,聽著,我們不能談論 Kubernetes 而不觸及它。你知道,我知道你一直關注人性方面的問題,實際上你從一開始就參與其中。你如何看它的發展?你如何看社區的變化?還有,你認爲 Kubernetes 的未來會怎樣?

Kelsey:我的意思是,如果說實話,Kubernetes 的未來是它必須消失。如果它消失了,那將是進步的標志。如果我們在 20 年後仍然在談論 Kubernetes,那將是科技界一個令人悲傷的時刻,因爲我們沒有想出更好的主意。

所以我認爲很多時候,實際上,上周在 KubeCon 上我遇到一個人,他在前臂上紋了一個 Kubernetes 的紋身。那是一個很酷的紋身,但我想了想,也許這個項目可能不會永遠存在,但也許記憶會永遠存在。也許這就是紋身的意義所在。

我們正處於第十個年頭。我不認爲人們意識到現在還很早。對於大多數社交項目來說,Linux 已經有 30 多年的歷史了,而 Kubernetes 才十年。想想 Kubernetes,很多人認爲它是全新的東西。

但當我看到 Kubernetes 時,早期吸引我的是,這個項目實現了過去十年的模式。所以如果你在 Kubernetes 發布之前十年的時間裡就已經存在,你會意識到很多人在他們自己的環境中實驗過這些模式。我們最終將所有這些模式整合在一起,並給它們起了個名字,我們稱之爲 Kubernetes。

所以我認爲也許真正的 20 年理念或者,十年,所有的實施已經有十年的歷史了。也許我們還有十年的時間。關於社區,有很多人一直在觀望。嘿,這個東西可能不會有所成果,只是炒作而已。我們會等待,然後回到我們的虛擬機。

然而,這種情況並沒有發生。現在那些從觀望中加入的人,他們第一次參加 KubeCon,他們去參加本地供應商的會議,無論是 VM World 還是 Oracle World,這項技術現在在這些會議上都處於核心位置。所以這些人現在第一次加入。當你遇到這些人時,你會感到驚訝,因爲他們會說:“嘿,我已經連續觀看了你的所有視頻,閲讀了你的 GitHub,還有《Kubernetes the Hard Way》這本書,幫助我從理解了從基礎知識到高級概念,我真的很感激。”

有另一群人在過去五年中一直抱怨 Kubernetes。他們說,“它太複雜了”,“它缺少這個,缺少那個。” “我們已經使用它一段時間了。我們認爲它應該疊代。” 當他們問未來會是什麽樣子時,有一句話說當你正在創造未來時,預測未來很容易。

因此,我看到的是那些試圖在 Kubernetes 之上構建新事物的項目。終有一天,其中某個項目會成功。那將是新的出現的東西。但我認爲 Kubernetes 非常出色,因爲它具有可擴展性。這是我們沒有充分討論的一點。

我們談論容器和編排,但 Kubernetes 的魔力在於它具有足夠的擴展點,用於安全性、存儲模塊、雲提供商集成。所以沒有必要去分叉。你想要做的任何創新,Kubernetes 都做出了一個非常明智的決策。

CRD(Customer Resource Definition,客戶資源定義)允許你創建在 Kubernetes 中的一流擴展。它們感覺原生,並且它允許你在不完全理解核心代碼庫的情況下測試新的想法。如果你是一個維護者,最困難的事情就是在不使核心項目偏離軌道的情況下添加新功能。你絕不希望因添加某些東西而分心,使其變得過於臃腫,並且難以維護。

Kubernetes 的 API 模型和插件模型對於所有未來的維護者來說,實際上是一份恩賜。現在,這些人無需費力地將所有功能都加入到 Kubernetes 中。API 使你能夠自行實現,而最出色的解決方案將會發展出自己的子社區,並成爲 Kubernetes 周圍的衛星項目。

Martin:是的,你知道的,挑戰和複雜性也很有趣。我們談到了 CNCF,你看看所有 CNCF 項目的圖表,你就會意識到這個領域的一些複雜性。但我看到你一直在做的一件大事,我們所有人都在盡力做的一件大事,就是努力幫助人們找到他們進入技術領域的途徑,將他們引入社區。你是如何解決這些固有複雜、快速變化的事物的呢?我們如何使其更廣泛可接觸,以便人們可以參與其中?

Kelsey:這個討論大約在六七年前出現,當時最常見的問題是 Kubernetes 太複雜了,有些人認爲我們應該只有一個巨大的 shell 腳本,我們也確實有這樣一個腳本,叫做 kube-up.sh。如果你運行它,它會爲你完成所有的操作。一條命令搞定一切,你只需花 5 到 15 分鍾觀察所有的技術信息滾動屏幕,然後你可能會想:“它在做些什麽。它在做些什麽。我相信它最終會完成……” 然後 15 分鍾後,你可能會說:“我覺得它已經完成了,但我不確定發生了什麽。”

是的。盡管你可以用一條命令啓動一個集群,但你對此並不滿意。你明白如果出現問題,你無法理解其中的原因。這就像飛行員在駕駛飛機時睡著了,然後有人說任何人都可以駕駛飛機。你會說,不,我只是購買機票然後坐在座位上。

因此,我決定我們不需要更多的軟體,我們需要一些文档。於是,我決定以高難度的方式編寫《Kubernetes the Hard Way》,我想向人們展示從頭開始構建集群所需的每個微妙步驟。從下載所有二進制文档開始,不走捷徑。我希望人們能夠逐字逐句地複制粘貼每個命令,反複地、反複地。因爲我想讓他們了解所有組件如何相互配合。

這樣,當他們完成這個拼圖時,他們將擁有整體的完整圖景。即使他們之後運行腳本或使用托管服務,他們也會更加自信,因爲他們了解各個組件是如何運作的。現在,聽起來似乎這並不能降低複雜性。但事實证明,當人們了解了某件事的工作原理後,就很簡單了,就像當你看到魔術師表演魔術,並向你展示他們是如何做到的,這就不再是魔術了。它只是一個把戲。

因此,我認爲需要的是讓人們了解如何將所有元素融合在一起,以便他們可以做出選擇並進行故障排除和調試。我認爲這是其中最重要的一點,就是教育人們這些功能的作用、存在的原因,並確保我們非常耐心。從 Alpha 版本逐步推進到普及給所有人使用的版本。所以,我認爲我們可以做的最重要的事情就是確保人們了解它的工作原理,因爲雖然這個項目很複雜,但我們不應該因此忽視教育人們的重要性。

Neha:我們一直回到這個反複出現的主題,即在另一耑有真實的人類。而軟體就是連接人與人之間的橋梁,對我而言,其價值在於接觸人們所處的位置,並與他們一起踏上旅程。

如果他們能夠參與其中,那麽我們就擁有了共同的經歷,並能夠以此創造出真實的成果。你提到了通過文档的方式來處理這個問題,而這些微小的項目細節往往容易被忽視,但最終卻能起到重要的作用。

正如你之前提到的,那些在幕後工作的社區經理們可能並不親自編寫代碼,但他們協助各個方面的工作,使整個項目得以成功。一個項目的成功通常依賴於成千上萬個這樣微小的任務。

我很高興你提出了這一點。你談到了如何在技術領域、特別是開源領域創造更具包容性和多樣性的未來。我很好奇你是否願意進一步談談這個問題,比如我們如何在技術行業中創造一個更具包容性和多樣性的未來,你是否見過在技術行業中促進包容性的成功倡議的例子?

Kelsey:可能有很多成功的倡議,但我們必須記住,其他團體中的很多人也有選擇的權利。有很多會議可以參加,有很多項目可以投身其中。因此,如果我們的環境不友好,沒有人會自願選擇留下來並爲之奮鬥,這不合理。

當我加入 Kubernetes 社區時,可以肯定地說,那裡沒有一個人看起來像我,百分之百如此。在吸引多樣性方面,我並沒有參與任何明確的項目,也許在其他領域可能有這樣的項目,但在那個特定領域我沒有參與其中。

然而,我並不知道的一件事是,當時我已經決定不再繼續參加會議演講了。我對在會議上發表主題演講、進行實時演示感到厭倦,因爲這需要花費很多時間,而且會讓我脫離日常工作。所以,我必須在這兩者之間做出選擇,我選擇了放棄演講方面的工作。

所以我發現自己在倫敦。我是這次會議的主持人,也是會議的主蓆。我還會發表主題演講,向人們展示可能的藝術。當我做這些主題演講時,人們並不知道,在幕後,我在調試技術。對我來說,其中很多東西都有點無聊,但有一些實驗讓我感到特別的興奮。就像你們都寫過代碼一樣。有時候,當你讓某些東西運行起來時,你會跳起小舞,就像說:“哦,我做到了!”而我試圖將這種 “我做到了” 的感覺融入到主題演講中。

所以當人們觀看時,我希望他們也能有同樣的感覺。我希望他們能體驗到完全相同的感受。所以我就說:“就這樣吧,這是我最後一次了。” 然後我下台。如果你曾在會議上發表過演講,並且做得很好,你會感到非常興奮。但我已經準備好放手了。然後有人在之後和我交談,我們一起走到了贊助商展區。然後你開始進行走廊交流,這就是你站在走廊上進行一些側面對話的時候。

你可以想象一個由八個人組成的圈子,他們站在那裡聊天,討論他們剛剛看到的内容,不同的演講,他們對於來到這裡感到興奮的事情。而我在這些圈子中想做的一件事是,當有一個新的人走過來時,你會分開,給他一個位置,然後他就站在那裡填補空缺。然後有一個長得像我一樣的人出現了。

我看著他,然後對他說:“嘿,你可以問我任何你想問的技術問題。這是我擅長的領域。我已經準備好了,不需要任何準備。” 然後他問了一個讓我措手不及的問題。他問:“你是如何做到的?你如何一直成爲房間裡唯一的黑人?”

你可以想象在那個圈子裡的其他與會者會想:“哇,這在說明書裡可沒有提到。” 他們耐心地看著兩個黑人進行這個對話,他們想知道答案是什麽。而我覺得我沒有一個很好的答案。因爲在那種情況下,我已經在我的職業生涯中習慣了這樣的情況已經有 20 年了。

你知道這很不幸,而且我還沒有解決這個問題。但他告訴我的是,現在每個人都同時患上了過敏,可能是季節的原因。對,每個人的眼睛都對過敏産生了反應。就是這樣。

然後他說:“嘿,我從來沒有覺得自己需要一個導師,直到我在 YouTube 上看到了你。我正在看一個視頻,一個長得像我一樣的人出現了,向我解釋了一個新的複雜的開源項目,他們正在考慮在工作中使用。而你看起來像我。我意識到這是多麽重要。所以當我知道 KubeCon 要來倫敦的時候,我決定去參加。而我之前從來沒有意識到我需要一個導師。”

然後我們在圈子裡沒有注意到,因爲他說了另一件事:“我帶著我的兒子來,這樣他就能看到我們不僅可以參加會議,還可以主持會議。我希望他能看到你的行動。你不僅僅是一個按計劃安排的人,所有的演講都很重要,但你在日程中是突出的。看看圍繞著你轉來轉去的人,向你提問的人有很多。” 我低頭看到了他的兒子。他把雙手放在我的肩膀上,這樣他就可以親眼看到我。我能和他的兒子握手。

在那一刻,我意識到有時候只要出現並且可見,你就給了所有那些認爲自己不受歡迎的人許可。他們意識到他們可以購買門票,因爲會有和他們相似的人在那裡。

所以我現在注意到的是,這些天,也許我在其中起到了一點點作用,我去參加這些會議,長得像我一樣的人都在那裡,我們不再需要協調了。我們不再需要一個子通道,在那裡決定我們要去哪些會議,以確保全全。

我們知道我們應該在那裡,我們在那裡能夠爲會議增加很多價值。所以我學到的是,如果你是一個少數群體,在提交演講提案時雖然很困難,在那裡成爲唯一的人也很困難,但這是一種必要的邪惡,雖然不公平也不正確,但它能産生很大的影響。

我決定繼續演講。我會盡可能參加所有的會議。我會講述這些故事。如果我能激勵到有更好方法來吸引更多人進入科技領域的人,我會接受這個挑戰。

Neha:我沉默了。嗯,你剛才的分享讓我非常感動,甚至讓我熱淚盈眶。非常感謝你的分享,讓我很有觸動。我需要稍微冷靜一下。我認爲,當你回顧過去時,現在的開源工作與十年前相比有著很大的不同。你是否面臨過一些獨特的挑戰,或者有不同的動力,特別是你剛剛在會議上所提到的。你可以與那些剛剛開始的人交流,並將這些經驗分享給他們。

Kelsey:在早期的科技行業,我遇到了一個普遍的問題,至少對我來說如此。我非常害怕申請工作,因爲當你看到工作要求時,它們通常需要擁有超過 50 年的經驗,掌握數百個技能。

你會想,這只是一個初級系統管理員的職位,爲什麽需要這麽多不同的技能和如此多年的經驗?這讓我覺得無法逾越,甚至無法開始。因此,我當時選擇了開一家小型電腦店。這其中有很多故事,但相比於滿足第一份工作的要求,開店似乎更容易。

當你想要建造一個大門時,你必須找到一個合適的位置,因爲門需要覆蓋兩耑來阻止人們進入。但是在開源領域,這種限制不存在。開源就像是一個開放的領域,沒有長得足夠長的大門可以限制住它。任何人都可以發起一個項目,任何人都可以爲項目做出貢獻。因此,我覺得開源非常具有吸引力。

對我來說,當我開始接觸開源時,沒有人去核實我的資格。沒有人說:“先填寫這份申請。” 相反,他們會說:“嘿,感謝你的貢獻,無論大小,無論是代碼還是文档。” 這讓我感到非常驚訝和開心。

你可以參加任何你想參加的聚會,可以討論任何你感興趣的技術話題。而在這個社區中,大部分人都非常樂於助人,迫不及待地願意向你解釋,就像說:“哇,有人和我一樣對 Python 感興趣!” 我試著和我的妻子討論這些事情,但她完全不感興趣。然而現在我找到了我的群體,我可以參與其中,與那些志同道合、願意一起學習的人們共同成長。

我認爲人們往往不會意識到,即使是有著不同目標的人,也可以共同合作、共同努力,讓彼此獲益。很多人並不相信這是可能的,他們認爲 “你必須選擇一個立場”。然而,在開源領域,我發現這是我參與過的最具包容性的事業之一。

因此,我認爲最大的挑戰就是向更多的人傳達這種可能性。也許我們在開源社區中互相尊重和合作的方式可以影響到其他社會領域,讓我們意識到我們可以憑借自己的技能和共同努力爲每個人帶來好處,這是可以實現的,這是可以接受的。

 

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 古爾曼:蘋果公司正將更多注意力轉向6G研發

  • git clone或者git pull因爲網路問題導致失敗

  • 大裁員, 巨虧, 知乎“值乎”?

  • 小談互聯網變現掙錢的14個模式

我要說說
網上賓友點評