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