【35歲系列】15.開源社區(qū)的微光

周六上午十點(diǎn),陳遠(yuǎn)站在西二旗一家共享辦公空間的玻璃門外,手里攥著手機(jī),屏幕上顯示著一條確認(rèn)短信:“陳遠(yuǎn)先生,您預(yù)約的‘開發(fā)者社區(qū)技術(shù)沙龍’座位已保留,地址:海淀區(qū)西二旗X號X座3層。時間:4月27日(周六)10:30-12:00。”

沙龍的主題是“云原生時代的中臺架構(gòu)實(shí)踐”。他猶豫了三天才決定報(bào)名。失業(yè)以來,他本能地抗拒一切“行業(yè)活動”,怕遇到前同事,怕被問“最近在哪兒高就”,怕在那些朝氣蓬勃、高談闊論的年輕人中間,顯得自己像個誤入的、過時的古董。

但他需要出來。需要接觸點(diǎn)“活”的東西,需要聽聽別人在做什么,在想什么,哪怕只是作為背景噪音,也好過在家里對著電腦和四面墻,被越來越深的焦慮和自疑吞噬。而且,這個主題和他正在學(xué)的K8s相關(guān),也許能學(xué)到點(diǎn)東西,或者,至少能確認(rèn)自己學(xué)的東西沒跑偏。

他深吸一口氣,推開玻璃門。前臺是個年輕的女孩,抬頭看了他一眼,公式化地微笑:“請問是參加沙龍的嗎?請這邊簽到?!?/p>

陳遠(yuǎn)簽了名,拿到一個印著“開發(fā)者社區(qū)”logo的紙質(zhì)手環(huán),戴在手腕上。沿著指示牌往里走,空間很開闊,loft風(fēng)格,裸露的水泥墻和管道,原木色的桌椅,隨處可見的白板和綠植。已經(jīng)來了不少人,大多很年輕,二三十歲的樣子,穿著休閑的帽衫、格子襯衫、牛仔褲,三三兩兩地聚在一起聊天,手里端著主辦方提供的免費(fèi)咖啡??諝饫飶浡Х认?、電子設(shè)備散發(fā)的微熱,以及一種熟悉的、屬于技術(shù)圈的活躍氛圍。

陳遠(yuǎn)找了個靠后的角落位置坐下,盡量降低存在感。他拿出手機(jī),假裝看信息,實(shí)則用余光打量周圍。講臺背景板上是本次沙龍的標(biāo)題和幾個贊助商的logo。旁邊立著易拉寶,上面印著幾位講師的簡介和照片,都很年輕,頭銜響亮:某大廠高級技術(shù)專家、某知名開源項(xiàng)目Committer、某創(chuàng)業(yè)公司CTO。

他一個都不認(rèn)識。或者說,這個圈子里活躍的面孔,他越來越不認(rèn)識了。技術(shù)迭代太快,明星人物也換得太快。他想起五六年前,自己也參加過不少類似活動,有時甚至作為講師上臺,講星云的服務(wù)化實(shí)踐,臺下坐滿了人,提問環(huán)節(jié)很熱烈。那時他意氣風(fēng)發(fā),覺得技術(shù)世界盡在掌握。

現(xiàn)在,他像個旁觀者,坐在后排,看著臺上即將開講的、可能比他年輕十歲的人,心里涌起一股復(fù)雜的滋味:羨慕他們的年輕和機(jī)會,懷疑自己是否還能理解他們講的東西,也有一點(diǎn)不甘——如果沒被裁,他是不是也可能站在某個講臺上,分享“星云科技”的“寶貴經(jīng)驗(yàn)”?

十點(diǎn)半,沙龍準(zhǔn)時開始。主持人是個活潑的年輕人,簡短開場后,第一位講師上臺。是個看起來不到三十歲的男生,戴著黑框眼鏡,語速很快,PPT做得簡潔現(xiàn)代。他講的是他們公司基于Service Mesh的中臺治理實(shí)踐,用了Istio,講流量管理、可觀測性、安全策略。很多概念陳遠(yuǎn)在學(xué)K8s時接觸過,但對方講得更深入,結(jié)合了真實(shí)生產(chǎn)環(huán)境的案例和踩坑經(jīng)驗(yàn)。

陳遠(yuǎn)聽得認(rèn)真,在手機(jī)上記著筆記。有些細(xì)節(jié)他不太明白,但整體思路是清晰的。他意識到,自己過去在星云那套“土法煉鋼”的服務(wù)治理方案,雖然解決了當(dāng)時的問題,但和現(xiàn)在這種基于成熟開源方案、標(biāo)準(zhǔn)化的做法相比,確實(shí)顯得笨重和過時了。這不是他技術(shù)不行,是行業(yè)范式在快速遷移,而他沒有跟上這波遷移。

第二位講師是個女生,講他們?nèi)绾斡肎itOps實(shí)現(xiàn)持續(xù)部署。這個概念陳遠(yuǎn)聽過,但沒實(shí)踐過。女生講得很清晰,從代碼提交到自動構(gòu)建、鏡像打包、部署到K8s集群的全流程自動化。陳遠(yuǎn)一邊聽,一邊在心里默默對比:星云的發(fā)布流程還是半手工的,雖然也有腳本,但遠(yuǎn)沒達(dá)到這種程度。效率、可靠性、可追溯性,差距明顯。

他感到一陣緊迫感。不是焦慮,是一種更清醒的認(rèn)知:他要補(bǔ)的課,比想象中更多。不僅僅是學(xué)會K8s的命令和概念,更要理解這套全新的研發(fā)運(yùn)維理念和工具鏈。否則,即使找到工作,也可能很快再次掉隊(duì)。

提問環(huán)節(jié),臺下很活躍。有問技術(shù)細(xì)節(jié)的,有問選型考量的,有問團(tuán)隊(duì)協(xié)作痛點(diǎn)的。提問的人大多年輕,問題很具體,甚至有些尖銳。陳遠(yuǎn)坐在后排,沒有舉手。他有問題,但覺得自己的問題可能太“基礎(chǔ)”,或者太“陳舊”,問出來會暴露自己的“落伍”。

沙龍結(jié)束后,是自由交流時間。人群散開,各自找感興趣的人聊天,或者去茶歇區(qū)拿點(diǎn)心飲料。陳遠(yuǎn)沒動,依然坐在角落。他看著那些年輕人聚在一起,交換名片,加微信,熱烈地討論著什么,臉上帶著光。那種光,他曾經(jīng)也有過——對技術(shù)純粹的熱情,對未來的無限憧憬,相信用代碼可以改變點(diǎn)什么。

現(xiàn)在,那光黯淡了。被KPI、績效、辦公室政治、房貸、裁員、年齡焦慮,一點(diǎn)點(diǎn)磨蝕掉了。他坐在這里,像一塊被潮水留在沙灘上的石頭,看著新的浪頭帶著新的沙粒和貝殼,歡快地涌上來。

“老師,能請教您個問題嗎?”

一個聲音在旁邊響起。陳遠(yuǎn)回過神,看見一個男生站在他旁邊,大概二十五六歲,穿著印有某編程語言logo的T恤,戴著眼鏡,表情有些靦腆。

“我?”陳遠(yuǎn)有些意外。

“嗯,”男生點(diǎn)點(diǎn)頭,指了指陳遠(yuǎn)旁邊空著的座位,“看您剛才聽得很認(rèn)真,筆記也記得很詳細(xì)。想問問,您對剛才講的GitOps流水線里,多環(huán)境配置管理那塊,是怎么看的?我們公司也在搞,但老是出問題,不同環(huán)境配置串了?!?/p>

陳遠(yuǎn)愣了一下。他沒想到會有人主動來問他問題。他看著男生誠懇的眼神,那眼神里沒有打量,沒有比較,只有對知識的渴求和對“前輩”本能的尊重——盡管這“前輩”可能只是個坐在角落、面容疲憊的中年男人。

“坐?!标愡h(yuǎn)往旁邊挪了挪。男生坐下,拿出手機(jī),點(diǎn)開記事本,準(zhǔn)備記錄。

陳遠(yuǎn)整理了一下思路。他確實(shí)思考過這個問題,在星云時也遇到過類似麻煩?!岸喹h(huán)境配置管理,核心是解耦和版本化。”他慢慢開口,盡量讓自己的表述清晰,“我們的做法是,把配置和代碼分開,用獨(dú)立的配置倉庫管理。通過不同分支或者目錄區(qū)分環(huán)境。部署時,根據(jù)不同的環(huán)境變量,拉取對應(yīng)的配置。關(guān)鍵是要有嚴(yán)格的權(quán)限控制和變更流程,避免手動修改。”

他講了一些具體實(shí)踐,比如用ConfigMap和Secret管理K8s的配置,用Helm Chart做包管理,以及如何做配置的灰度發(fā)布和回滾。男生聽得很專注,不時點(diǎn)頭,在手機(jī)上快速打字。

“還有一個問題,”男生又問,“如果配置項(xiàng)很多,依賴關(guān)系復(fù)雜,怎么保證一致性?”

“可以用配置中心,比如Apollo,或者Nacos。”陳遠(yuǎn)說,“但引入新組件也有復(fù)雜度。我們當(dāng)時評估后,選擇了相對簡單的方式,靠流程和工具鏈保證。但長遠(yuǎn)看,配置中心是趨勢?!?/p>

他講了自己在星云時做配置治理的經(jīng)驗(yàn),踩過的坑,以及后來的改進(jìn)方案。男生聽得眼睛發(fā)亮:“原來如此!我們就是沒做好流程,老出問題。您說的這個方案,感覺更貼合我們現(xiàn)狀。太感謝了!”

“不客氣,互相學(xué)習(xí)?!标愡h(yuǎn)說,心里那點(diǎn)因?yàn)椤奥湮椤倍a(chǎn)生的自慚,稍微消散了一些。至少,他過去的經(jīng)驗(yàn),對某些場景、某些人,還是有價值的。

“老師,能加您個微信嗎?”男生有些不好意思地問,“以后有問題,還想向您請教?!?/p>

“……好?!标愡h(yuǎn)拿出手機(jī),兩人加了微信。男生的微信名叫“阿飛”,頭像是個卡通程序員。

“我叫李飛,在一家做教育SaaS的創(chuàng)業(yè)公司做后端開發(fā)?!蹦猩晕医榻B,“您怎么稱呼?”

“陳遠(yuǎn)。暫時……自由職業(yè)?!标愡h(yuǎn)說。他用了“自由職業(yè)”這個詞,比“失業(yè)”好聽,也符合他目前接外包的現(xiàn)狀。

“自由職業(yè)好啊,羨慕!”李飛眼睛更亮了,“能自己安排時間,接喜歡的項(xiàng)目。我也想以后試試?!?/p>

陳遠(yuǎn)笑了笑,沒解釋“自由職業(yè)”背后的焦慮和不穩(wěn)定。年輕人有憧憬,是好事。

又聊了幾句,李飛被同伴叫走了。陳遠(yuǎn)坐在原地,看著李飛離開的背影,心里有點(diǎn)奇異的溫暖。被需要,被請教,被認(rèn)可的感覺,哪怕只是來自一個陌生的年輕人,也像一束微光,照進(jìn)他這些日子以來陰霾重重的心境。

他站起來,走到茶歇區(qū),拿了杯咖啡和一塊小蛋糕??Х仁撬偃艿模案庥悬c(diǎn)甜膩,但他吃得很慢,感受著這點(diǎn)簡單的、免費(fèi)的饋贈帶來的微小滿足。

“陳遠(yuǎn)?”

又一個聲音,帶著不確定。陳遠(yuǎn)轉(zhuǎn)頭,看見一個有些面熟的男人,四十歲上下,穿著Polo衫,微胖,頭發(fā)稀疏。

“你是……陳遠(yuǎn)吧?星云科技的?”男人走過來,臉上帶著笑,“我是劉強(qiáng),以前在極光科技,我們合作過那個客服系統(tǒng)對接項(xiàng)目,記得嗎?”

陳遠(yuǎn)在記憶里搜索。想起來了,劉強(qiáng),極光科技的一個項(xiàng)目經(jīng)理,五六年前合作過,人還不錯,做事靠譜?!皠⒔?jīng)理,好久不見?!标愡h(yuǎn)伸出手。

“哎呀,什么經(jīng)理不經(jīng)理的,早不在極光了?!眲?qiáng)用力握了握他的手,壓低聲音,“我也出來了,去年的事?,F(xiàn)在在一家做物聯(lián)網(wǎng)的初創(chuàng)公司混著。你怎么也來了?也對云原生感興趣?”

“過來聽聽,學(xué)習(xí)學(xué)習(xí)。”陳遠(yuǎn)含糊地說。

“學(xué)啥啊,咱們這歲數(shù),學(xué)不動了?!眲?qiáng)擺擺手,湊近些,聲音更低,“我是來找機(jī)會的??纯从袥]有項(xiàng)目可以合作,或者……有沒有坑。你呢?還在星云?”

陳遠(yuǎn)搖搖頭:“出來了,最近在看機(jī)會。”

“理解理解。”劉強(qiáng)一副了然的表情,拍了拍他的肩,“這年頭,都不容易。我那邊公司倒是在招人,但要求高,錢還少,估計(jì)你看不上。不過我可以幫你留意著,有合適的告訴你?!?/p>

“謝謝劉哥?!标愡h(yuǎn)說。他知道劉強(qiáng)這話多半是客氣,但心里還是感激。至少,在這個場合,還有人記得他,愿意說句“幫你留意”。

兩人又寒暄了幾句,交換了微信。劉強(qiáng)被人叫走,陳遠(yuǎn)重新坐回角落。他看著周圍的人群,心態(tài)似乎發(fā)生了一些微妙的變化。他不再覺得自己是完全的局外人。這里有像李飛那樣渴求知識的年輕人,也有像劉強(qiáng)那樣在尋找出路的中年生。每個人都在自己的軌道上掙扎、探索、試圖抓住點(diǎn)什么。

他打開微信,看到李飛發(fā)來的消息:“陳老師,今天太感謝了!受益匪淺!以后多向您學(xué)習(xí)!”

陳遠(yuǎn)回了個“客氣了,互相學(xué)習(xí)”的表情。

他又看到“江湖再見”群里,老王發(fā)了一張他女兒畫畫的照片,說“周末陪娃,歲月靜好”。下面幾個人點(diǎn)贊。陳遠(yuǎn)也點(diǎn)了個贊。

沙龍徹底散場了。人群陸續(xù)離開。陳遠(yuǎn)最后一個走出共享辦公空間。午后的陽光很好,暖洋洋地照在身上。他站在路邊,看著西二旗街道上熙熙攘攘的人流和車流,那些穿著各色公司文化衫的年輕人,行色匆匆,奔赴各自的工位或下一個聚會。

他忽然想起,自己已經(jīng)很久沒有在周末的下午,這樣毫無目的地站在街頭發(fā)呆了。以前,周末要么加班,要么累得只想癱著。失業(yè)后,要么焦慮地在家投簡歷,要么被家庭的瑣碎和責(zé)任填滿。像這樣,單純地參加一個活動,聽點(diǎn)新東西,和人聊幾句,然后站在陽光下,感受春天的風(fēng)和溫度,竟成了一種奢侈。

他慢慢往地鐵站走。心里那片沉重的、板結(jié)的焦慮,似乎被剛才那場沙龍、那兩次短暫的交談,撬開了一道細(xì)微的縫隙。有光照進(jìn)來,雖然微弱,但畢竟是光。

他意識到,他不能一直躲在家里。他需要走出來,接觸人,接觸信息,接觸這個行業(yè)依然在奔涌向前的活水。哪怕只是坐在后排聽,哪怕只是和陌生人聊幾句技術(shù),哪怕只是知道這世界上還有人和他一樣在迷茫、在尋找、在努力不被拋下。

這本身,就是一種治療。

地鐵上,他打開手機(jī),搜索剛才沙龍里提到的幾個開源項(xiàng)目:Istio,Argo CD,Crossplane。他訂閱了它們的官方博客和社區(qū)動態(tài)。又搜了一下“GitOps實(shí)踐案例”,收藏了幾篇看起來不錯的文章。

然后,他打開筆記軟件,新建了一個筆記,標(biāo)題是“技術(shù)沙龍收獲與TODO”。他記下今天聽到的關(guān)鍵點(diǎn),自己理解不透的地方,以及下一步要深入學(xué)習(xí)的方向。他列出了下周的學(xué)習(xí)計(jì)劃:看完Istio的核心概念,在本地Minikube集群上實(shí)踐GitOps流程,寫一篇學(xué)習(xí)筆記。

他寫得很認(rèn)真,像在規(guī)劃一個重要的項(xiàng)目。事實(shí)上,這確實(shí)是他當(dāng)前最重要的“項(xiàng)目”——自我更新,重新建立與這個行業(yè)的連接,找到自己新的位置。

回到家,朵朵撲上來要他抱。林薇在廚房做飯,探出頭問:“沙龍?jiān)趺礃???/p>

“還行,聽了些新東西?!标愡h(yuǎn)說,把朵朵抱起來,“遇到個年輕人,問了我點(diǎn)問題?!?/p>

“看你這表情,比前幾天好多了。”林薇笑了,“出去走走是對的,別老悶著?!?/p>

“嗯。”陳遠(yuǎn)點(diǎn)頭。他把朵朵放下,走到廚房門口,看著林薇忙碌的背影。油煙機(jī)的轟鳴,鍋鏟碰撞的聲音,食物下鍋的滋啦聲,混合著朵朵在客廳玩玩具的笑聲。這是他的生活,具體,瑣碎,充滿煙火氣。

“薇薇,”他開口,“我打算……開始寫點(diǎn)技術(shù)博客?!?/p>

林薇轉(zhuǎn)過頭,有些驚訝:“博客?寫什么?”

“就寫我學(xué)的東西,比如K8s,云原生。還有以前的一些項(xiàng)目經(jīng)驗(yàn),踩過的坑?!标愡h(yuǎn)說,語氣比想象中堅(jiān)定,“反正現(xiàn)在有時間,整理一下,發(fā)出來。也算是個輸出,逼自己學(xué)得更系統(tǒng)。而且,萬一……萬一有人看,說不定也是個機(jī)會。”

林薇看著他,眼神柔和下來:“好啊,我支持。你技術(shù)那么好,是該寫寫。需要我?guī)湍憧纯次恼聠幔侩m然我不懂技術(shù),但文字通不通順我能看?!?/p>

“好?!标愡h(yuǎn)笑了,心里那點(diǎn)因?yàn)闆Q定做一件“不直接賺錢”的事而產(chǎn)生的不安,消散了許多。

晚飯后,他哄睡了朵朵,坐在電腦前。沒有立刻打開外包項(xiàng)目的代碼,而是新建了一個文檔,標(biāo)題是“從零開始理解Kubernetes Service”。他思考了一下結(jié)構(gòu),開始寫。

寫得很慢,很仔細(xì)。他不僅要講清楚概念,還要結(jié)合自己學(xué)習(xí)的困惑和實(shí)踐中的理解,盡量讓文字易懂。遇到不確定的地方,他就去查官方文檔,看別人的文章,確保準(zhǔn)確。

寫了幾百字,卡住了。他覺得自己的表述太啰嗦,不夠精煉。他刪掉重寫。又寫了幾百字,還是不滿意。他有點(diǎn)煩躁,懷疑自己是不是根本不適合寫東西。

但想到對林薇說的話,想到下午沙龍上李飛請教他時認(rèn)真的眼神,他又強(qiáng)迫自己靜下心來,繼續(xù)。

凌晨一點(diǎn),他寫完了第一部分,大約兩千字。從頭讀了一遍,雖然還有很多可以優(yōu)化的地方,但至少邏輯是清晰的,內(nèi)容是有用的。他把它保存到本地,沒有立刻發(fā)布。他想再打磨一下,再多寫幾篇,攢一攢,再考慮發(fā)到哪個平臺。

關(guān)掉文檔,他沒有立刻去睡。他打開GitHub,搜索“Kubernetes beginner-friendly issues”。他想找點(diǎn)簡單的、適合新手參與的開源項(xiàng)目,或者提個PR(Pull Request),修個文檔錯別字也好。參與開源社區(qū),是另一個接觸行業(yè)、證明自己“還在線”的方式。

瀏覽了一會兒,他找到一個國內(nèi)開源的微服務(wù)框架項(xiàng)目,文檔里有一處描述不太準(zhǔn)確。他Fork了項(xiàng)目,在本地修改,提交,發(fā)起Pull Request。動作很生疏,因?yàn)樗芫脹]有以個人身份參與開源了。以前在公司,代碼都貢獻(xiàn)給公司內(nèi)部倉庫了。

做完這些,已經(jīng)凌晨兩點(diǎn)。他站起來,走到陽臺。夜色深沉,但遠(yuǎn)處寫字樓的燈光依然亮著不少。城市永不眠,代碼永不眠。

他想起下午沙龍結(jié)束時,主持人說的結(jié)束語:“技術(shù)之路,學(xué)無止境。愿我們永遠(yuǎn)保持好奇,永遠(yuǎn)熱淚盈眶?!?/p>

他當(dāng)時覺得這話有點(diǎn)雞湯。但現(xiàn)在,在深夜里,在經(jīng)歷了失業(yè)的打擊、焦慮的折磨、自我懷疑的深淵之后,在決定開始寫博客、參與開源、重新學(xué)習(xí)之后,他忽然有點(diǎn)理解了。

不是“熱淚盈眶”那么戲劇化。而是一種更樸素的東西:當(dāng)你發(fā)現(xiàn),盡管你被打倒了,被拋下了,被宣告“過時”了,但你內(nèi)心深處,對技術(shù)本身,對那些用代碼構(gòu)建邏輯、解決問題的過程,依然殘留著一絲不肯熄滅的興趣和熱情。這熱情可能被生活的塵埃覆蓋了很久,但它還在。像一顆被埋了很久的種子,只需要一點(diǎn)光,一點(diǎn)水,就又顫巍巍地,想要冒出新芽。

陳遠(yuǎn)看著窗外的燈火,輕輕呼出一口氣。

夜還很長,路也還長。但至少,今晚,他朝著有光的方向,又往前挪了一小步。

很小的一步。但畢竟是向前。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容