作者 | 溪洋來源|阿里巴巴雲原生公眾號
「社會之所以能夠運作,並不是人類有意使然,而是因為它是進化過程中出現的人類秉性。確切地說,它就是人性的一部分。」 _——《美德的起源》馬特·裡德利_
所謂「助人者自助」,或許協作、互助這種能力就是我們為了滿足人類與生俱來的一部分「個體私慾」而進化來的,讓自己和他人都能從中受益。 在開源社區中,這一點得到了很好的體現。「開源」本身就是一個社會性事件,它的流行很大程度上得益於協作以及由協作帶來的創新。特別是隨著雲原生成為大勢所趨,企業 IT 技術體系越來越朝著原生化、標準化的思路演進,這些都推動著開源來到一個新的黃金年代。
不得不說,今天的開發者是幸福的:雲讓基礎設施使用起來像水、電一樣便利;雲原生將分布式的應用門檻不斷下放;開源社區幫助開發者找到各種為自己所需的基礎軟體。剩下的,就是需要開發者自己去思考如何利用好這一切,比如通過主動融入更大範圍的學習、交流、溝通圈子,以及藉助開源社區的能力等方式,讓產生於開發者群體中的「分布式」和「社交方式」的決策形成事實標準,進而讓每一位開發者自己成為推動技術發展浪潮的主角。
OAM 社區 Maintainer Roy:我和社區一起成長的那些事兒
幾天前,我們和開源的雲原生應用標準定義與架構模型 OAM(Open Application Model)社區 KubeVela 項目的新晉 Maintainer —— Roy 進行了一次對話。現在的 Roy 是韓國漢陽大學計算機科學專業的一名在讀研究生,一位陽光大男孩兒。當被問及平時有哪些愛好時,他不假思索地回答了「寫代碼」和「跑步」。
Roy
GitHubID:@captainroy-hy
從 OAM 剛發布開始,Roy 就投入了積極的貢獻。作為全球首個定義雲原生應用標準與架構模型的項目,2019 年 10 月開源的 OAM 和 Roy 一樣,都是年輕而快速生長的:年輕的 OAM 在今年鋒芒顯現,被評選為「2020 年度十大開源新銳項目」;年輕的 Roy 憑藉自己的貢獻成為 OAM 核心實現 KubeVela 項目的核心 Maintainer,需要從更加全局的視角幫助項目發展。
我們向 Roy 了解了他成為 Maintainer 的心路歷程,並且從中得到了一些關於如何看待開源精神、貢獻社區以及對 OAM 的理解等問題不一樣的答案。
「發現 OAM 源於尋找雲應用模型落地方案」
Roy 在實驗室的研究方向是「雲計算與雲應用編排」,解決的問題是幫助應用開發人員屏蔽掉由底層基礎設施帶來的複雜性和差異性,使他們更好地運用雲平臺上豐富的應用管理能力,來構建和編排規模龐大且複雜的雲原生應用。這在現階段是非常具有挑戰的一個課題。
隨著雲原生領域的迅猛發展,開源社區也湧現出了許多與之相關的開源項目,Roy 會經常關注一些雲原生相關的開源項目。在他看來,OAM 的價值在於以一個俯瞰整個雲原生領域的視角,通過建立全新的應用定義與交付模型,在應用層提供了一個用於構建和交付雲原生應用的標準規範,這給過往一直專注於基礎設施層的雲原生領域開闢了全新的前進方向。
因為看到 OAM 實現的目標和自己的研究課題非常接近,加之有阿里巴巴、微軟這樣的大型企業背書,再加上自己對 OAM 社區核心初創成員過往開源經歷的「背調」,Roy 逐漸建立了對 OAM 的信任,開始了真正意義上的「跟隨」。
「第一次貢獻與代碼無關,但很重要」
Roy 對 OAM 的貢獻是從翻譯 oam-spec 的英文文檔開始,「當時我在 Issue 裡看到有開發者提出了這樣的需求,在孫健波老師的牽頭下就著手開始翻譯。這個過程對我理解 OAM 的幫助很大,因為我需要將說明從頭到尾完整地學習一遍」。
除了翻譯文檔,Roy 還介紹了很多除了寫代碼之外的社區貢獻方式,比如:
在社區裡提問題,甚至是提出對現有功能的質疑和吐槽,這些可以讓項目成員更好地了解如何幫助用戶;回答其他成員的問題。如果你發現有的問題需要一遍遍地回復,就可以編寫或者更新 FAQ 文檔,以便給有相同問題的人員隨時參考;提供實踐 OAM 的具體場景以及遇到的問題,基於具體場景的實踐問題可以幫助社區快速定位用戶需求;提出新功能設計的想法,希望項目在未來具備什麼功能、為什麼需要該功能、初步實現思路,等等,都可以在社區中提出來,你會發現其他人也有類似的痛點,最終社區可能會推動實現這一新功能;幫助項目進行教育和推廣。你可以通過任意方式的分享去幫助 OAM 教育和影響用戶,比如在用戶群中討論、撰寫案例和博客文章等。「OAM 是一個新項目,大家可以做出的貢獻很多。其中,代碼是一種重要的方式,但絕不是唯一的,你總能找到一種適合自己的方式參與到社區中來,而且一定會從給社區的貢獻中收到回饋」,Roy 說。
「作為學生開發者,我是如何快速融入 OAM 社區的」
Roy 現在很大一部分精力都投在 OAM 項目的維護上。支撐他可以這麼做的原因除了還在學校、時間比較自由之外,還有兩個非常強的動力:一是通過參與 OAM 使自己的知識和技能不斷增長;二是看到自己參與的項目真的能幫到很多開發者,並且已經被越來越多的人用起來,可以收穫滿滿的成就感。
但作為一名在校研究生,一開始想要融入這樣一個偏向工程實踐的社區並不容易。缺少雲原生領域在業界的實踐經驗、對一些成熟項目的知識盲區,對 Roy 來說都是不小的挑戰:「曾經有前輩向我介紹一個出現在生產環境中的問題,因為包含很多術語,一開始我根本不知道他在說什麼。直到他們給到具體的例子,甚至把代碼都貼出來才能看明白。對實踐場景的不熟悉,很容易導致我對功能需求的認識出現偏差。」
然而這些挑戰也恰恰是 Roy 希望通過社區補齊的能力:「社區工作本身就是一種實踐,這和你自己去學習課程、閱讀教程完全是兩個概念。」
在開源中持續學習為了克服這些困難,Roy 首先是 Push 自己去學習和摸索相關的基礎知識。雲原生本來就是一個比較新且綜合的領域,就拿 Kubernetes 來說,涉及的知識點、功能點非常多,有著不低的學習門檻。Roy 和我們分享了他利用開源社區進行學習的一些經驗:「首先我會通過開源社區去學習並整理出一些官方最權威的文檔,同時會看一些成熟的基於 Kubernetes 的開源項目。因為這些項目在落地過程中被不斷完善,逐漸形成了相對成熟的實踐參考,當我們遇到相似問題時是一個非常有用的學習對象。」
通過交流補充實踐向社區裡的前輩們請教,是 Roy 補齊自己實踐短板最有效的方式:「在社區中,我有機會和許多技術能力很強的前輩交流,比如和阿里雲高級別的技術專家直接溝通,這對我來講是非常寶貴的機會」。他認為社區工作最重要的一點就是溝通交流,不要「閉門造車」。只有大家對同一個問題有了相同的認知,並且對解決方案達成一個初步的共識之後,再去動手寫代碼,才是社區裡協作解決問題的高效方式。
「成為 Maintainer 的過程,讓我對 OAM 的理解更完整」
從實際參與社區到晉升為 Maintainer,Roy 大概經歷了四、五個月的時間,幫助 KubeVela 完成了不少 Feature 的具體實現,得到了項目創始團隊和現有 Maintainer 的認可。通過這些工作,讓 Roy 自己也對 OAM 「以應用為中心」的理念有了更完整的理解。在他看來,OAM 的出現及其目前的成績,是雲原生領域自然發展進程中的一個必然:
「雲原生發展到現在,特別是 Kubernetes 出現以來,可以說經歷了一個野蠻生長的階段。它提供了高度可擴展的能力,讓大家可以把幾乎任意形式的軟體都集成到這個平臺上來。這一方面促進了 Kubernetes 和雲原生的發展、繁榮,但也使平臺上的應用管理變得非常複雜。」
作為一個一直關注云原生和 Kubernetes 領域的開發者,Roy 認為過往的開源項目基本圍繞基礎設施層,而 OAM 第一個提出了「以應用為中心」的理念,並且在不久前通過 KubeVela 的開源,將 OAM 的模型和 Kubernetes 運行時以更貼進 PaaS 平臺用戶和 PaaS 平臺構建人員的方式,進行了完整實現。
「成為 Maintainer 對我來說是一種認可,也需要我承擔更多的責任。未來,除了更多地傾聽社區反饋、不斷增強 OAM 及其子項目的能力之外,我也會向更多的開發者去普及 OAM 和相關開源項目的理念,幫助用戶更快上手實踐 OAM,就像孫健波等前輩做的那樣」,Roy 表示。
「希望和更多開發者共建『應用管理生態」
談及對於 OAM 項目未來的發展,Roy 最希望的就是能夠推動「下一代的、完全開放的應用管理生態」的逐步成熟。他認為 OAM 的發展,包括 KubeVela 的開源,已經搭建好了一個標準的雲原生應用平臺框架,這個框架具備高度的可擴展性和靈活性,對用戶也非常友好,提供了不少開箱即用的應用管理能力,而更重要的是,這個框架還給了整個社區一個「一鍵組裝」雲原生生態能力成為 PaaS 的最佳路徑,這樣一個完全開放的、基於雲原生社區能力的應用管理生態,其實已經初見雛形。
這次聊天最後 Roy 表達了這樣的期待:「希望有更多的人參與到 OAM 社區尤其是 KubeVela 項目中,一起去建設這個日趨繁榮的應用管理生態,讓越來越多的平臺團隊能夠快速輕鬆的構建出強大而功能豐富的 PaaS,讓應用開發人員真正享受到雲原生帶來的美好體驗。」
後記
「個體私慾與互助並非絕不相容」。
在和 Roy 聊完天后,我們對「開發者」、「開源社區」和「市場」之間的互相成就,有了一次非常直接的體會:開發者的貢獻成就開源,開源推動技術發展成就企業,而企業又給開發者帶來了更多的便利。
所以開發者,別讓自己孤獨,這是一種美德,也能很好地幫助到你自己。
本文為阿里雲原創內容,未經允許不得轉載。