本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
加入 SIG Scalability 並以硬方式學習 Kubernetes
貢獻給 SIG Scalability 是以深入且廣泛的方式學習 Kubernetes 的絕佳途徑,團隊非常歡迎您加入成為貢獻者。我研究了從實作中學習的價值,並採訪了現任 SIG 主席,讓您了解貢獻的感受。
從實作中學習的價值
軟體開發社群中有一種信念,即推動以最具挑戰性和最嚴謹的方法來學習新的語言或系統。這些方法通常以「從實作中學習 __」的稱號來稱呼。例子很多:Learn Code the Hard Way、Learn Python the Hard Way,以及許多其他起源於 Zed Shaw 關於該主題的課程。
雖然有些人在那裡為您提供「從實作中學習 Kubernetes」類型的體驗(最著名的是 Kelsey Hightower 的),但任何「從實作中學習」專案都應嘗試涵蓋核心主題原則的各個方面。
因此,「從實作中學習 Kubernetes」的真正方法是加入 CNCF 並參與專案本身。只有一個 SIG 可以真正為 Kubernetes 提供全堆疊學習體驗:SIG Scalability。
SIG Scalability 背後的團隊負責偵測和處理當 Kubernetes 叢集處理超過一千個節點時出現的問題。Google 的資深軟體工程師兼 SIG Scalability 成員 Wojiciech Tyczynski 表示,此 SIG 的測試叢集標準大小超過 5,000 個節點。
然而,這個 SIG 並非由高度可擴展系統設計方面的博士組成。例如,與 Tyczynski 一起工作的許多人加入 SIG 時對這些類型的問題知之甚少,而且通常對 Kubernetes 也知之甚少。
在 SIG Scalability 上工作就像跳入游泳池深處學習游泳,而 SIG 本質上關注整個 Kubernetes 專案。SIG Scalability 專注於 Kubernetes 作為一個整體以及大規模運作的方式。SIG Scalability 團隊成員有動力學習每個系統並了解所有系統如何彼此互動。
複雜且有意義的貢獻者體驗
雖然這聽起來可能很複雜(而且確實如此!),但這並不意味著它超出了普通開發人員、測試人員或管理員的範圍。Google 軟體開發人員 Matt Matejczyk 自 2019 年初以來才加入團隊,從那時起他一直是團隊中備受重視的成員,負責找出錯誤。
Matejczyk 說:「我是這裡的新手。我於 [2019 年] 1 月加入團隊。在此之前,我在紐約的 Google AdWords 工作。我為什麼加入?我認識一些人,所以這是我決定搬過來的原因之一。當時我認為 Kubernetes 是一項獨特、尖端的技術。我認為從事這項工作會很酷。」
Matejczyk 對於酷炫的看法是正確的。「這很酷,」他說。「所以實際上,上手可擴展性並不容易。您需要了解很多事情。您需要非常了解 Kubernetes。它可以使用 Kubernetes 的每個部分。經過這 8 個月後,我仍在上手。我認為我花了 3 個月的時間才達到像樣的速度。」
當 Matejczyk 談到他在這 8 個月中從事的工作時,他回答說:「一個有趣的例子是我最近一直在研究的迴歸。我們注意到 Kubernetes 控制平面的整體速度在特定情況下變慢,而且我們無法將其歸因於任何特定元件。最後,我們意識到一切都歸結為 golang 層級的記憶體分配。僅僅因為其中一個程式碼以太快的速度分配記憶體,就讓兩個完全獨立的程式碼片段(作為同一個二進位檔案的一部分執行)相互影響效能,這非常違反直覺。但是將所有點連接起來並深入了解像這樣的迴歸會帶來很大的滿足感。」
Tyczynski 說:「這不僅僅是偵錯迴歸,還包括偵錯和找出瓶頸。一般來說,這些可能是迴歸,但也可能是我們可以改進的地方。另一個重要領域是擴展我們想要向使用者保證的內容。擴展系統的 SLA 和 SLO 涵蓋範圍,以便使用者可以信賴他們可以從系統的效能和可擴展性方面期望獲得什麼。Matt 在擴展我們的測試以使其更具代表性並涵蓋更多 Kubernetes 概念方面做了很多工作。」
試試 SIG Scalability
SIG Scalability 團隊始終需要新成員,如果您是那種喜歡接受新的複雜挑戰的開發人員或測試人員,並且可能喜歡從實作中學習,請考慮加入這個 SIG。正如團隊指出的那樣,在您的履歷中新增 Kubernetes 專業知識絕不是一個壞主意,而且這是您可以從頭到尾學習所有知識的一個 SIG。
請參閱 SIG 的文件以了解即將舉行的會議、其章程等。您也可以加入 #sig-scalability Slack 頻道,看看它是什麼樣子的。我們希望看到您加入以利用這個絕佳的機會學習 Kubernetes 並同時做出貢獻。