夜鶯開源監控突破一萬star,當我們離開的時候希望世人還記得我們

夜鶯監控專案在上週突破了一萬 star,算是一個小小的里程碑。在開源領域,通常把 star 數量看作專案的繁榮指標,star 數量越多,說明願意關注你的人越多。這個數字的背後,是一群人對你的鼓勵、認可和支援,當然,還有鞭策。夜鶯專案最早發起於 2020 年初,發展到現在接近四年時間,本文想借此機會聊聊我們做開源的初心,這四年的感悟,以及多方共贏的商業模式設計。

專案簡介

夜鶯專案最初是我們在滴滴的時候開源的,後來捐贈給中國計算機學會開源發展委員會進行託管,以基金會的方式運作。其 github 地址是 https://github.com/ccfos/nightingale,其中 ccfos 就是 CCF OpenSource,即中國計算機學會開源專案的統一地址。
專案至今,有 130 位 contributor 參與,共提交了 2600 多次 commit,發版了 170 多次,fork 數 1400,docker pull 228k,雖說我們還有很多不足,但這些數字讓我們看到了持續進步的汗水。如果一個開源專案可以堅持投入 4 年,甚至 10 年,20 年,我們堅信它的社會價值會越來越大。

專案發起初心

如果聊到專案開源的初心,那得追溯到 10 年前我們開源 open-falcon 那會了,當時確實啥都不懂,就是憑一腔熱血為愛發電,當時覺得吧,我們搞了一個自認為還不錯的專案,獨樂樂不如眾樂樂,放出來大家一起完善,專案會越發牛逼。當時的我們,也沒有想過什麼商業模式,只是想把這個專案做好,讓更多人用,讓更多人參與。
實際遇到了如下一些問題,如果你也做過開源專案,估計會很有同感:
  • 維護者的心理壓力大
    • 經常碰到不看文件的小白使用者,問各種基礎問題。就像一個二年級的小學生經常被問 1+1 等於多少,時間久了,會很厭倦
    • 偶爾會碰到頤指氣使的人,用了你的專案,覺得你欠他的的一樣,但凡遇到問題,不管是不是自己的問題就惡語相向
  • 維護者時間精力有限
    • 大部分開源專案都是維護者兼職在搞,時間精力有限,畢竟養家餬口才是第一位的,搞開源是上層精神層面的追求了
    • 這會導致有些問題處理不夠及時,顯然,這會導致使用者不滿。週末照顧家人時收到陌生人提問那也是家常便飯,我不開心,使用者也不開心
    • 當維護者調崗跳槽之後,基本就不會繼續參與了,這對專案而言是致命的
  • 專案功能發展設計其實還是靠你自己
    • 會有水平很高且願意和你探討專案設計發展的人,但確實數量不多,畢竟大部分開源專案影響力有限
    • 也會有參與者,通常是小修小改,偶爾還會碰到巨型 PR,是要改你的命名規範,因為他覺得現有的命名規範不符合他的審美
後來發起夜鶯專案,我們就在思考如下這個關鍵問題:
如何才能讓一些人才持續全情投入?只要有人持續投入,專案一定會越來越好,不管是功能層面、效能層面,還是文件、社群支援,只要有人持續參與,一切都會越來越好。但是人家得養家餬口啊,除非給人發工資。工資從哪裡來?靠專案自身去賺不就行了。於是,,,我們創業了,做了一家公司叫快貓星雲。
但是,事情遠沒有這麼簡單。

開源和商業的天然悖論

我們想到的第一個模式是靠技術 Support,因為 RedHat 就是這麼幹的。普通使用者提供社群支援,商業使用者提供商業支援,如果客戶在生產環境部署了你的軟體,為了防止緊急生產故障,買個 Support 以防萬一,這理所當然,看起來是個好模式。但也僅僅是看起來,實操中會發現如下問題:
  • 監控、可觀測性系統,我們覺得是 P0 級服務,但是很多客戶覺得不影響核心系統所以沒關係,重視程度不高,如果是核心 DB 或 OS,那就不一樣了
  • 開源做的越好,比如功能越穩定、豐富,文件越完備,使用者遇到的問題越少,越不需要 Support,如果開源做的不好,使用者量起不來,也不會有商業使用者
  • 邊界不好界定。如果只是夜鶯軟體本身出問題我們來提供支援理所當然,那客戶問這個 promql 怎麼寫?達夢資料庫怎麼監控?這些問題就很難界定了
所以,技術 Support 根本沒有大規模商業化的底層邏輯支撐。如果你只是個人專案,養活自己就行,或者只是想賺點外快,這個模式或許還行,如果只是想養活幾個人,這個模式我都覺得很難。
另外,開源監控、可觀測性專案,可選擇的專案還比較多,你如果收費,別家免費,即便你做的更好,也很難有人買單。你有養家餬口的壓力,但是其他有些專案的研發人員人家已經財務自由了,人家就是可以全職不拿錢做開源,你怎麼辦?

多方共贏的商業模式設計

其他領域不敢講,監控、可觀測性這個領域,如何設計一個多方共贏的商業模式?我的個人觀點(注意,只是個人觀點)如下:
  • 開源的部分,需要是功能閉環的,即,不依賴商業功能也能用的起來。而且這部分功能要足夠好,讓使用者覺得用的很爽,這樣才能吸引使用者。這部分承接了我們的精神層面的訴求以及商業營銷層面的訴求。這部分功能,我們可以把它叫做社群版。我們要在社群版這塊投入全職人力,給他們發工資做開源。
  • 沒有預算的開源使用者,可以免費使用社群版,有社群提供的技術支援,雖然響應速度沒有商業版快,總還會有人響應,比那些動不動就撂挑子的開源專案會強很多。
  • 有預算的使用者,可以購買商業版,商業版的功能要比社群版更強大,技術支援也更及時。比如開源版會重點做告警引擎功能,而商業版會做大一統的可觀測性平臺。其定位不能相同,定位相同了就沒法取捨,比如一個功能是放社群版還是商業版,就很難界定了。
其他一些 ToB 商業公司同行可能會覺得我們這種做法就是毒瘤。因為我們開源的部分搶了他們的生意,但實際上,我們開源的是基礎監控告警能力,即便沒有我們,還是會有 Prometheus,會有 Zabbix 這些前輩在,如果 ToB 公司的生意能夠被開源專案搶走,說明你的產品能力可能還需要加強。而社群版也承載了我們的精神層面的訴求,我們希望為社會提供一個好用的監控系統,讓更多人受益,這是初心,我們不可能放棄。

活下去是責任,留下點什麼才是關鍵價值

有些創業導師說,如果你只是為了錢,那不應該創業。實際上,創業的原因哪能是單一的。肯定是既要又要還要啊。
  • 既要賺到錢,養家餬口,發得起工資,這是責任
  • 又要部分員工可以全職做開源,滿足一下精神層面的需求
  • 還要讓飛輪轉起來,越做越好越做越大,讓各方受益
如果,我是說如果,我們站在生命的盡頭,回首往事,什麼會相對更有價值?我想,可能是過程中一起經歷的風雨,以及我們生命留下的痕跡,我們在開源專案上的付出,可能會是我這碌碌無為的一生中最深的那個痕跡了吧。
最後,歡迎大家一起參與夜鶯社群,做點長期有價值的事情,也歡迎有預算有需求的朋友,聯絡我們交流監控、可觀測性產品技術,給我們提供更硬核的支援。


相關文章