章亦春可以說是一個(gè)跟“網(wǎng)紅”絕緣的人,用他自己的話來說,他“是一個(gè)追求 light 而不是 heat 的人”。網(wǎng)絡(luò)上能搜索到的對(duì)章亦春本人的采訪文章屈指可數(shù),他的名字更多出現(xiàn)在其他人的采訪文章里,或者認(rèn)識(shí)他的人講述的故事里,不然就是知乎問答里。
他所創(chuàng)建的開源項(xiàng)目 OpenResty 跟他本人很像,盡管在全球范圍內(nèi)擁有超過 4000 萬域名用戶、從微軟到淘寶都是其用戶,卻不是一個(gè)曝光度、討論熱度很高的項(xiàng)目。上一次 OpenResty 在技術(shù)圈引發(fā)關(guān)注和討論,還是在 2015 年年底錘子科技冬季新品發(fā)布會(huì)上,當(dāng)時(shí)羅永浩宣布把發(fā)布會(huì)門票收入全部捐贈(zèng)給那會(huì)正在籌備當(dāng)中的 OpenResty 軟件基金會(huì)。
時(shí)隔六年多,InfoQ 找到章亦春并展開了一場深度對(duì)話,我們得以近距離感受章亦春獨(dú)特的人格魅力,進(jìn)一步了解到他和 OpenResty 曾經(jīng)的故事以及最新的動(dòng)態(tài)。
章亦春熱愛編程和計(jì)算機(jī)技術(shù),早已是做出世界級(jí)貢獻(xiàn)的編程高手。編程之外,章亦春喜歡讀書,涉及的領(lǐng)域包括計(jì)算機(jī)科學(xué)、技術(shù)、數(shù)學(xué),還有印度佛教史。他也修習(xí)禪法,這能讓他感受到終極的寧靜和喜悅。每天他都會(huì)盡量抽時(shí)間到山里走走,置身于大自然,思考一些艱深卻有趣的問題。
“低調(diào)的簡直沒朋友”,曾是一些認(rèn)識(shí)章亦春的朋友對(duì)他的評(píng)價(jià)。如今章亦春開始反思,自己過去確實(shí)太低調(diào)了,這導(dǎo)致團(tuán)隊(duì)很多工作進(jìn)展并不為人所知,現(xiàn)階段確實(shí)應(yīng)該更“高調(diào)”一些了。
傳說中的 3.25 績效
不久前一篇題為《百度騰訊阿里真的是高科技企業(yè)嗎?》的文章在技術(shù)圈流傳頗廣,在文章里,章亦春被列舉為 BAT 大廠之外有世界級(jí)貢獻(xiàn)的中國程序員之一,同時(shí)也被描述成了大廠不重視 IT 基礎(chǔ)技術(shù)貢獻(xiàn)的“受害者”。
原文是這么描述的:
2009 年,淘寶工程師章亦春開創(chuàng)了 openresty 項(xiàng)目,給主要處理靜態(tài)文件的 Nginx 增加了動(dòng)態(tài)處理能力,但是章亦春在淘寶內(nèi)部拿到了需要?jiǎng)裢说目冃?,并且最終從淘寶辭職,去了美國硅谷。
經(jīng)過向章亦春求證,文章中的描述不僅時(shí)間線混亂(開創(chuàng) OpenResty 項(xiàng)目是在 2007 年而非 2009 年),有不符合事實(shí)的描述(“給主要處理靜態(tài)文件的 Nginx 增加了動(dòng)態(tài)處理能力”不是對(duì) OpenResty 的準(zhǔn)確描述,OpenResty 并非要改進(jìn) Nginx,Nginx 只是在改寫老版 OpenResty 時(shí)選擇使用的一個(gè)組件庫),也非常斷章取義。透過章亦春的回憶,我們得以一窺當(dāng)年故事的全貌。簡單地說,章亦春確實(shí)拿過 3.25 不合格的績效,但不是在淘寶,而且這跟他后續(xù)從淘寶辭職并無關(guān)聯(lián)。
章亦春拿到 3.25 不合格績效是早期在雅虎中國(當(dāng)時(shí)已經(jīng)是阿里巴巴的一家子公司)的時(shí)候,因?yàn)椴徽J(rèn)同當(dāng)時(shí)直屬經(jīng)理的管理方式,在阿里評(píng)分體系里的“價(jià)值觀”部分被打了不合格,從而導(dǎo)致整體績效不合格,但是也沒有被勸退(當(dāng)時(shí)的規(guī)定是連續(xù)兩個(gè)季度都拿不合格才會(huì)被勸退)。在直屬經(jīng)理給出差評(píng)之后不久雅虎就被拆分了,章亦春也被轉(zhuǎn)去了淘寶,和那個(gè)雅虎經(jīng)理分道揚(yáng)鑣。
章亦春至今都非常感謝當(dāng)年雅虎中國搜索部門的老大何偉平,以及后來淘寶數(shù)據(jù)部門的老大姜蕾和張茂森。在他看來,如果沒有當(dāng)年在雅虎中國和淘寶的部門老大全力支持,就不可能有我們現(xiàn)在看到的 OpenResty 這個(gè)開源項(xiàng)目。
在雅虎中國時(shí),早期章亦春得到了搜索部門老大何偉平的大力支持和幫助,對(duì)方非常支持 OpenResty 開源,也很支持 OpenResty 的方向和在公司搜索平臺(tái)中的應(yīng)用。
后來部門被拆分,團(tuán)隊(duì)被解散,人員重新分配到阿里巴巴下面的各個(gè)子公司去。一開始章亦春被分到淘寶的搜索部門,但是在搜索部門的工作對(duì)他來說并不愉快,開很多會(huì),經(jīng)常被拉到杭州出差,OpenResty 的開發(fā)也相對(duì)停滯。在那時(shí)候,章亦春就提出了辭職。但當(dāng)時(shí)淘寶商戶數(shù)據(jù)統(tǒng)計(jì)部門的老大姜蕾和張茂森來找到他,并邀請他加入數(shù)據(jù)部門。雙方在溝通時(shí),章亦春表示希望有足夠的自由度繼續(xù)做開源 OpenResty,而對(duì)方則希望用 OpenResty 作為淘寶數(shù)據(jù)平臺(tái)的基礎(chǔ)。這對(duì)雙方來說是共贏,章亦春就同意了。
在淘寶商戶數(shù)據(jù)統(tǒng)計(jì)部門期間,章亦春基于 Nginx 和 LuaJIT 等基礎(chǔ)組件改寫了 OpenResty,在這個(gè)過程中得到了當(dāng)時(shí)另一位同事王曉哲(網(wǎng)絡(luò) ID 是 chaoslawful)的大力幫助。兩年后,在把整個(gè)數(shù)據(jù)分析平臺(tái)都遷移到新版 OpenResty 上、實(shí)現(xiàn)了性能數(shù)量級(jí)的提升后,章亦春覺得自己已經(jīng)完成了在淘寶數(shù)據(jù)部門最初設(shè)定的使命。當(dāng)時(shí)他認(rèn)為,如果再往下走,技術(shù)和職業(yè)發(fā)展的天花板就比較明顯了,自己也不喜歡花很多時(shí)間精力去和其他部門 PK 項(xiàng)目做。他再次萌生了過“田園生活”的愿望,就從淘寶辭職了。
特立獨(dú)行的“春哥”
章亦春坦言自己是個(gè)特立獨(dú)行的人。他對(duì)編程和計(jì)算機(jī)技術(shù)有著一份極致的熱愛,而這份熱愛和想要心無旁騖探究技術(shù)的堅(jiān)持,又推動(dòng)著他把對(duì)“田園生活”的向往付諸現(xiàn)實(shí)。
據(jù)章亦春自述,他自幼就非常專注,有強(qiáng)烈持久的好奇心和求知欲,很喜歡刨根問底,也總是努力把自己喜歡的事情做到最好,不計(jì)投入。自初中起,他就立志要找到值得投入一生的事業(yè),尋找到為之努力的意義,然后就“但行好事,莫問前程”。
為此他廣泛閱讀了各個(gè)學(xué)科的著作,并嘗試在自己感興趣的學(xué)科上做一些自己的研究,這讓他感到非常享受。上初中時(shí)他經(jīng)常深夜還在家做化學(xué)實(shí)驗(yàn),有一次還在凌晨不小心引發(fā)了爆炸。所以最后當(dāng)他確定要投身學(xué)習(xí)計(jì)算機(jī)時(shí),家人都松了一口氣——至少不會(huì)有性命危險(xiǎn)了。
這么多年過去,章亦春最大的興趣愛好始終還是從根本上解決計(jì)算機(jī)領(lǐng)域中那些尚未被突破的難題,并將這些創(chuàng)新運(yùn)用到產(chǎn)品開發(fā)中。這對(duì)他來說不是工作,而是最有趣、最讓他著迷的心智活動(dòng)。
同時(shí),他更在意的是自己能不能創(chuàng)造真正的價(jià)值,能不能在理論和技術(shù)上有突破和貢獻(xiàn),因此很多時(shí)候確實(shí)更喜歡專注在自己的世界里,思考、探索一個(gè)又一個(gè)有趣的科學(xué)或技術(shù)問題,大膽想象新的可能性并予以實(shí)現(xiàn)。這是他一直以來保持低調(diào)、不常在媒體和外部活動(dòng)中露面的原因。雖然他其實(shí)很享受與志同道合的人交流,也熱愛分享,但他更希望自己每一次分享都能呈現(xiàn)一些在理論或技術(shù)上的新成果和進(jìn)步。
章亦春對(duì)“田園生活”的向往由來已久,最早起源于初中語文課本里的一篇散文《釣勝于魚》。文中講一位美國大學(xué)的老教授經(jīng)常乘著一條小船,在湖光山色中一邊釣魚一邊研究學(xué)術(shù)問題,釣上來的魚又經(jīng)常被他放回湖中。從少年時(shí)代起,這樣既能親近自然又能潛心研究的生活就根植于他的心中,成為他理想的生活和工作狀態(tài)。
對(duì)于章亦春來說,在北京工作 4 年,收獲很大,但工作壓力也很大,同時(shí)他還有很多關(guān)于 OpenResty 開源項(xiàng)目的計(jì)劃和想法,希望在沒有工作的情況下,集中力量去實(shí)現(xiàn)。所以他一直在尋找時(shí)機(jī),換一種生活和工作方式。
2011 年決心離開阿里時(shí),章亦春和太太(當(dāng)時(shí)還是女朋友)都想去南方生活,正好太太那年研究生畢業(yè)在福州找到了一份工作,于是他們就一起從北京搬去了福州。當(dāng)時(shí)做這個(gè)決定的時(shí)候,他對(duì)自己未來的工作和生活還沒有清晰的計(jì)劃和想法,只是比較喜歡這種能夠自主安排的工作和生活狀態(tài)?,F(xiàn)在回想起來,雖然那個(gè)階段沒有收入,只有來自用戶公司和個(gè)人的一些微薄的捐贈(zèng),但是能夠集中力量去系統(tǒng)地做一些自己最想做的事情,讓他感到很滿足。
關(guān)于福州這一年的“田園生活”,還有一些有趣的后續(xù)。章亦春在 2011 年 3 月份決定去福州,7 月份搬到了福州,但在 6 月初就收到 CloudFlare 創(chuàng)始人 Matthew 和 Michelle 的工作邀請,希望他加入他們的初創(chuàng)團(tuán)隊(duì)。第一次,章亦春謝絕了他們的好意,告知他們自己準(zhǔn)備在一個(gè)南方小城市開始“田園生活”。但是 Matthew 極其有誠意,出資邀請他們先去舊金山看一看,同 CloudFlare 的團(tuán)隊(duì)工作一周,體驗(yàn)一下那里的生活再做決定。當(dāng)年 10 月章亦春和太太去了舊金山,度過了很難忘的一周。Matthew 表示章亦春可以到來舊金山過“田園生活”,在他們那里全職做 OpenResty,還能有收入。但章亦春還是想繼續(xù)在福州的生活,于是再次謝絕了這個(gè)工作邀請,Matthew 和 Michelle 仍親自開車送他們到機(jī)場。11 月份 Matthew 到北京開會(huì),再次邀請章亦春見面,他最終被 Matthew 的誠意感動(dòng),就接受了 CloudFlare 的 offer。次年 6 月,章亦春和太太正式搬到了舊金山。
在灣區(qū)的生活,非常接近章亦春理想中的“田園生活”,為此他非常感激 Matthew。在 CloudFlare 那幾年,他繼續(xù)全力推進(jìn)開源 OpenResty 的開發(fā),取得了很大的進(jìn)展。期間也不斷有其他公司的創(chuàng)始人三顧茅廬邀請他加入,包括 Nginx 的作者和 Nginx Inc. 的聯(lián)合創(chuàng)始人 Igor、Kong 的創(chuàng)始人、連續(xù)成功創(chuàng)業(yè)的 MIT 博士等。但章亦春覺得這些都不是最想做的事,自己創(chuàng)建公司的念頭也逐漸萌發(fā)。
開源生涯新階段
對(duì)于 OpenResty, 章亦春一直有著宏偉的愿景:希望 OpenResty 能在工業(yè)界、互聯(lián)網(wǎng)行業(yè)引領(lǐng)“機(jī)器編程”革命。人類只需要向機(jī)器輸入行業(yè)知識(shí)和意圖,機(jī)器就能自己編寫高效可靠的實(shí)現(xiàn)代碼、自行測試,快速部署在大規(guī)模的計(jì)算機(jī)系統(tǒng)上,并同時(shí)生成人類可讀的文檔。這一靈感其實(shí)源自他高中時(shí)教機(jī)器解高考題的有趣經(jīng)歷。
對(duì)章亦春來說,如果一直受雇于企業(yè),自然必須要優(yōu)先保證雇主的業(yè)務(wù)需求,自己就不能完全專注于 OpenResty 藍(lán)圖的實(shí)現(xiàn)。另一方面,隨著 OpenResty 滲透到越來越多的公司和行業(yè),社區(qū)卻無力提供商業(yè)級(jí)別的技術(shù)支持和理想的解決方案,這也是開源項(xiàng)目運(yùn)作上普遍存在的局限。
于是在 2017 年初,章亦春在美國創(chuàng)辦 OpenResty Inc. 公司,他的開源生涯也進(jìn)入了一個(gè)新的階段。在這個(gè)階段,章亦春思考最多的是如何借助“機(jī)器編程”的全新思路和方法來極大提升復(fù)雜應(yīng)用軟件的開發(fā)速度和質(zhì)量,如何實(shí)現(xiàn)開源商業(yè)化,如何克服開源社區(qū)本身的一些局限,以及如何充分利用盡可能多的不同開源軟件來為客戶以及自己創(chuàng)造出更多的商業(yè)價(jià)值。
創(chuàng)建公司后,開源不再是章亦春唯一的專注點(diǎn),在目前這個(gè)階段,公司相關(guān)事務(wù)占據(jù)了他大部分的時(shí)間。作為公司的 CEO,他的日常工作的大部分時(shí)間都用在“必須要做的事情”上,包括公司管理、產(chǎn)品開發(fā)和客戶的交流等。即使是在很多開源項(xiàng)目上的工作,經(jīng)常也是出于公司項(xiàng)目的需要。
當(dāng)然,OpenResty 開源的性質(zhì)不會(huì)改變,實(shí)際上,開源用戶對(duì) OpenResty 的認(rèn)可和感謝是章亦春堅(jiān)持 OpenResty 開源項(xiàng)目至今最大的動(dòng)力之一。章亦春一如既往地?zé)釔壑_源,開源帶給他的幸福感仍一如他大學(xué)時(shí)每天泡在 #perl 6 IRC 聊天頻道與來自世界各地的優(yōu)秀黑客協(xié)作交流時(shí)那般強(qiáng)烈。只不過現(xiàn)在他自己成了曾經(jīng) IRC 頻道里的“教主”角色。
章亦春對(duì)自己當(dāng)前在 OpenResty 開源項(xiàng)目中的角色定位是“領(lǐng)導(dǎo)者”。他會(huì)嚴(yán)格審核 OpenResty 項(xiàng)目貢獻(xiàn)者提交的,不確定的或者有爭議的補(bǔ)丁和變更,并控制項(xiàng)目發(fā)展的大方向。項(xiàng)目因?yàn)樗膰?yán)格把控維持了相對(duì)高的質(zhì)量和穩(wěn)定性,但這兩年他也慢慢意識(shí)到“看門太緊”對(duì)項(xiàng)目的可持續(xù)發(fā)展性造成的一些影響。
相比起 OpenResty 的使用人數(shù),OpenResty 開源社區(qū)的貢獻(xiàn)者數(shù)要少得多。這其中有一個(gè)重要原因就是給 OpenResty 貢獻(xiàn)代碼的門檻很高,每一行代碼都會(huì)被嚴(yán)格把關(guān),久而久之大家也就不敢提交代碼了。
章亦春表示,如果說前十五年 OpenResty 項(xiàng)目的關(guān)鍵詞是“穩(wěn)定”,那未來十五年的關(guān)鍵詞將會(huì)是“開放”。只有“穩(wěn)定”和“開放”兩者之間取得良好的平衡,才能保證一個(gè)開源項(xiàng)目能長長久久。因此,章亦春也在嘗試對(duì)領(lǐng)導(dǎo)項(xiàng)目的重心和方式做出調(diào)整,希望自己既是維系社區(qū)精神和愿景的守護(hù)者,也是鼓勵(lì)更多人參與協(xié)作的促進(jìn)者。
基于這樣的反思,也為了能一改社區(qū)過去相對(duì)沉寂的狀態(tài),社區(qū)做了一些改變和嘗試。比如最近社區(qū)建立了一個(gè) slack workspace(https://openresty.com/en/community/),以提供一個(gè)集中、實(shí)時(shí)的平臺(tái)來方便 OpenResty 的用戶、開發(fā)者進(jìn)行技術(shù)討論和交流。
此外還引入了很多新興的管理開源社區(qū)的方式和工具,以期實(shí)現(xiàn)社區(qū)管理的“跳躍式發(fā)展”。其中一個(gè)是 roadmap items voting system on Canny,任何人(包括管理者)都可以到 Canny Board 提出和上調(diào)投票具體的需求,項(xiàng)目的產(chǎn)品路線圖也就應(yīng)運(yùn)而生。從此,社區(qū)開發(fā)者在 Canny Board 上就能挑選并報(bào)名自己感興趣且需求度高的項(xiàng)目進(jìn)行開發(fā),至少在方向上錯(cuò)不了。
另一個(gè)引入的管理工具叫“Aviyel”,它是一個(gè) Web 3.0 概念的開源社區(qū)獎(jiǎng)勵(lì)和認(rèn)可平臺(tái)。貢獻(xiàn)者跨平臺(tái)的代碼和非代碼(QA、項(xiàng)目宣傳、設(shè)計(jì)等等)貢獻(xiàn)可兌換成徽章,并將它們作為靈魂綁定代幣。徽章的數(shù)量代表了每個(gè)貢獻(xiàn)者(包括管理者)在開源社區(qū)的影響力,隨著社區(qū)本身價(jià)值的提高,這些徽章未來還能被“貨幣化”。通過上述這些平臺(tái),企業(yè)可以提出需求,獨(dú)立貢獻(xiàn)者可以放心地提交被需要的功能,這樣一來社區(qū)才能吸引更多不同的聲音參與到社區(qū)建設(shè)和項(xiàng)目發(fā)展上。
同時(shí)社區(qū)也會(huì)組織更多的 meetup,邀請更多企業(yè)來分享他們的 OpenResty 用例,參與和影響項(xiàng)目未來的發(fā)展。
章亦春希望未來能有更多人共同參與維護(hù)和開發(fā)開源項(xiàng)目,也希望能有更多的企業(yè)來驅(qū)動(dòng)項(xiàng)目的發(fā)展和創(chuàng)新,使 OpenResty 開發(fā)不再是由少數(shù)開發(fā)者主導(dǎo),不再是“一言堂”。
“現(xiàn)階段應(yīng)該更高調(diào)一些”
OpenResty Inc. 成立五年來,團(tuán)隊(duì)一直聚焦在“機(jī)器編程”這個(gè)方向展開工作。據(jù)章亦春介紹,團(tuán)隊(duì)目前已經(jīng)完成了極其重要的理論和技術(shù)積累,蓄勢待發(fā)。不過由于他之前的“低調(diào)”,這些多不為人所知。
到了現(xiàn)在這個(gè)階段,他坦言自己確實(shí)應(yīng)該更“高調(diào)”一些,把團(tuán)隊(duì)的成果更多地分享出去,讓更多的工程師和企業(yè)從團(tuán)隊(duì)的產(chǎn)品中受益。
現(xiàn)階段 OpenResty Inc. 最主要的目標(biāo)是通過機(jī)器編程技術(shù),幫助廣大的企業(yè)用戶大幅提升線上各種軟件系統(tǒng)的效能,同時(shí)提供更豐富的 OpenResty 外圍軟件生態(tài)圈和周邊庫。進(jìn)一步地,幫助廣大企業(yè)用戶“透視”基于各種開源軟件構(gòu)建的業(yè)務(wù)系統(tǒng),清晰地看到其內(nèi)部運(yùn)行狀況,并提供人類專家和機(jī)器專家關(guān)于性能、異常和安全問題的改進(jìn)和優(yōu)化建議。
基于此目標(biāo),團(tuán)隊(duì)開發(fā)了 OpenResty XRay 產(chǎn)品,可以對(duì)大規(guī)模的分布式互聯(lián)網(wǎng)系統(tǒng)進(jìn)行各種有趣的性能分析和 Bug 追蹤,而無需應(yīng)用系統(tǒng)的任何配合,也不用下線或重啟任何在線服務(wù)。這就像給在線軟件系統(tǒng)拍活體 X 光片或者核磁共振片,可以隨時(shí)隨地看到從操作系統(tǒng)內(nèi)核到應(yīng)用軟件的腳本語言代碼的方方面面,把整個(gè)軟件棧作為一個(gè)隨時(shí)間動(dòng)態(tài)變化的整體來看待。
章亦春透露,過去五年,公司的大部分精力都放在了創(chuàng)造全新的技術(shù)上,以從較根本的層面上去解決計(jì)算機(jī)世界一些最痛的問題。如今終于基本實(shí)現(xiàn)了最初的技術(shù)愿景,取得了一定技術(shù)成果。但由于團(tuán)隊(duì)規(guī)模還比較小,時(shí)間和資源也較為有限,所以把重點(diǎn)放在技術(shù)創(chuàng)新的同時(shí),在社區(qū)方面的投入就少了。一直到今年,才有資源投入到社區(qū)中。同樣,早前商業(yè)化方面的投入也非常不足,團(tuán)隊(duì)直到去年底都是清一色的工程師,沒有商業(yè)方面的人才。目前已有的幾十家來自世界不同國家的商業(yè)客戶都是主動(dòng)找過來的。雖然章亦春非常慶幸也非常感謝這些客戶的信任與支持,但這肯定不是一條可持續(xù)的路。
章亦春坦言,過去五年公司在開源商業(yè)化上摸索,其實(shí)走了不少彎路,但也因此獲得了非常寶貴的經(jīng)驗(yàn)教訓(xùn)。其中很關(guān)鍵的一點(diǎn)就是,商業(yè)化的產(chǎn)品和開源產(chǎn)品不能在同一個(gè)或者類似的賽道上,尤其是在開源產(chǎn)品已經(jīng)很強(qiáng)大的情況下。在他看來,開源本身不是一種商業(yè)模式,而是一種協(xié)作關(guān)系,開源項(xiàng)目取得了很大的成功,并不能保證開源商業(yè)化的成功,甚至從某種程度上來說還可能成為一種阻礙。開源商業(yè)化要取得成功,關(guān)鍵就是要提供與開源項(xiàng)目互補(bǔ)(而不是替代之)的價(jià)值,讓市場愿意為這個(gè)價(jià)值買單。
另外,也不能低估用戶除了產(chǎn)品性能之外的商業(yè)考量因素,包括遷移成本、內(nèi)部產(chǎn)品整合等等。章亦春表示,在開發(fā)具體的商業(yè)產(chǎn)品時(shí),要盡可能詳盡地了解開源需求,以大量用戶數(shù)據(jù)、競品信息來驅(qū)動(dòng)產(chǎn)品決策。即便在資源有限的情況下,也不能一心做研發(fā),而忽略宣傳和知識(shí)分享。
截至 2022 年 5 月 30 日,OpenResty 在全球范圍內(nèi)擁有 40,785,783 域名用戶,占總市場份額 14.91%。其中域名市場份額排名第一和第二的分別是 Nginx(27.42%)和 Apache(22.93%),Cloudflare 位列第四(8.40%)。在所有競品當(dāng)中, OpenResty 是唯一一個(gè)在沒有任何主動(dòng)商業(yè)宣傳前提下還能在過去五年保持持續(xù)增長狀態(tài)的解決方案。
去年底,章亦春找到了一位很欣賞的商業(yè)合伙人,今年公司已經(jīng)開始全面構(gòu)建商業(yè)團(tuán)隊(duì),會(huì)在商業(yè)化方面做出更多嘗試和努力。
“我覺得 OpenResty 終于到了一個(gè)可以再一次厚積薄發(fā)的發(fā)展階段。同時(shí)我們新創(chuàng)造的技術(shù)和方法也早已不再局限于開源 OpenResty 的范圍,而是可以延伸到所有的開源項(xiàng)目和用戶社區(qū)。”
對(duì)話章亦春:如何應(yīng)對(duì)云原生時(shí)代的可觀測性挑戰(zhàn)?
在即將召開的 QCon 全球軟件開發(fā)大會(huì)(北京站) 2022,章亦春將在“云原生架構(gòu)變革”專場帶來題為“穿透 K8s 容器的應(yīng)用分析——使用動(dòng)態(tài)追蹤分析應(yīng)用的世界前沿技術(shù)”的演講分享,章亦春老師將結(jié)合其超前的技術(shù)視野和超過 15 年的開源經(jīng)驗(yàn),來講述在云原生時(shí)代如何攻克可觀測性最大挑戰(zhàn):既對(duì)容器內(nèi)應(yīng)用進(jìn)行穿透性觀測,以及保證觀測結(jié)果的準(zhǔn)確性、完整性和可操作性的最佳方案。感興趣的同學(xué)可點(diǎn)擊鏈接了解 100 議題。圍繞云原生時(shí)代的可觀測性挑戰(zhàn)這一主題,我們也與章亦春聊了聊,訪談實(shí)錄如下。
InfoQ:您這次在 QCon 上分享的主題與云原生時(shí)代的可觀測性有關(guān),根據(jù)您的觀察,當(dāng)前 Kubernetes 應(yīng)用的可觀測性面臨哪些困境和挑戰(zhàn)?
章亦春:其實(shí)對(duì)于非容器化的軟件應(yīng)用的可觀測性,如果真的能夠快速發(fā)現(xiàn)和定位絕大多數(shù)的線上問題,包括那些很深的詭異問題,在技術(shù)上也是一件挑戰(zhàn)很大的事情。容器化和 Kubernetes 環(huán)境又在此基礎(chǔ)上增加了不少新的技術(shù)復(fù)雜度,主要是容器的虛擬化和隔離這些方面。在一切都正常工作的情況下,容器化的方法論讓應(yīng)用布署和運(yùn)維變得簡單,但它客觀上大大增加了整個(gè)軟件棧本身的復(fù)雜度。雖然這些復(fù)雜度對(duì)于大多數(shù)用戶而言被封裝和隱藏了起來,但它們無法被消滅,仍然會(huì)產(chǎn)生更多的問題,并讓調(diào)試變得更困難。
舉一個(gè)最突出的例子,容器在大小上面一般都故意做了最小化處理,因?yàn)榇蠹倚枰M量降低容器鏡像的大小,這就導(dǎo)致容器內(nèi)部其實(shí)缺少很多常用的系統(tǒng)工具,在調(diào)試問題時(shí)會(huì)非常麻煩。另一方面,容器為了最大化安全性,一般也是用最小集合的權(quán)限來運(yùn)行的,這更加劇了像 strace 或 gdb 這樣的工具無法在容器內(nèi)使用的問題。進(jìn)一步地,宿主操作系統(tǒng)和容器內(nèi)的操作系統(tǒng)經(jīng)常也是很不相同的,所以使用宿主系統(tǒng)的工具去調(diào)試容器內(nèi)的應(yīng)用,既易受到容器的命名空間隔離的限制,又易受到工具鏈兼容性的制約。
InfoQ:針對(duì)前面提到的這些可觀測性挑戰(zhàn),目前業(yè)內(nèi)有哪些常見的應(yīng)對(duì)方法?
章亦春:業(yè)內(nèi)目前最常見的應(yīng)用方法只是打日志或者在應(yīng)用里埋點(diǎn)吐更多的指標(biāo)數(shù)據(jù)到容器外,這需要應(yīng)用本身的配合,經(jīng)常也需要對(duì)應(yīng)用本身做修改。我也看到有基于 eBPF 或 SystemTap 這些更高級(jí)的動(dòng)態(tài)追蹤技術(shù)的分析工具,但這些技術(shù)的開源實(shí)現(xiàn)還很原始,有非常大的局限性。針對(duì)這些問題,我們研發(fā)了全新一代的動(dòng)態(tài)追蹤技術(shù)來實(shí)現(xiàn) OpenResty XRay 這個(gè)產(chǎn)品,完全不需要修改容器或應(yīng)用本身,也不會(huì)向用戶的應(yīng)用內(nèi)注入代碼或加裝模塊,同時(shí)克服了開源技術(shù)的諸多問題和局限,可以快速和精確地發(fā)現(xiàn)和定位任意的問題,包括那些很詭異、隱藏很深的問題。
InfoQ:對(duì)于可觀測性方向未來的技術(shù)趨勢,您有怎樣的預(yù)測和判斷?
章亦春:我相信類似動(dòng)態(tài)追蹤這樣的技術(shù)會(huì)發(fā)揮越來越大的力量,機(jī)器最終可以自動(dòng)診斷和修復(fù)很多人類專家都搞不定的線上應(yīng)用的各種問題。另一方面,機(jī)器編程這樣的技術(shù)也可以讓更傳統(tǒng)的應(yīng)用內(nèi)埋點(diǎn)吐日志和指標(biāo)的方式變得更容易更動(dòng)態(tài),或許在動(dòng)態(tài)性上也可以更接近動(dòng)態(tài)追蹤這樣的技術(shù)。
InfoQ:您最近還在關(guān)注哪些前沿技術(shù)方向?能否跟開發(fā)者們分享一下,您是如何培養(yǎng)和保持自己對(duì)技術(shù)的前瞻性的?
章亦春:我最近一個(gè)時(shí)期主要關(guān)注下面這些技術(shù)方向,當(dāng)然可能并不一定都符合大家對(duì)“前沿”的定義:
- Linux 內(nèi)核中的 eBPF 相關(guān)的技術(shù)
- Linux 基于容器和命名空間的虛擬化技術(shù)
- 基于機(jī)器學(xué)習(xí)等方法、針對(duì)優(yōu)化編譯后的二進(jìn)制程序的深度分析
我比較喜歡研究各種技術(shù)和問題的本質(zhì),并發(fā)揮想象力去尋找最根本的解法,畢竟具體的技術(shù)和方法一直都在快速變化中,也總是在解決了老問題的同時(shí),不小心引入新的問題。和開源社區(qū)、和公司客戶保持溝通和交流可以了解到很多有趣的東西,另外像 Hacker News 和 InfoQ 這樣的媒體上面也可以經(jīng)常看到好玩的新事物。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。