歡迎光臨
每天分享高質量文章

我為 Redis 找到了一個新家 —— VMWare

點選上方“芋道原始碼”,選擇“置頂公眾號”

技術文章第一時間送達!

原始碼精品專欄

 

來源:http://t.cn/Re36YIj

今天翻了一下Antirez早年的部落格,發現了這樣一篇介紹redis進展的好文章,寫於2010年,居然長期以來都沒有被翻譯成中文,所以我就不客氣了。故事發生在Redis紅火不久,作者急切尋找一個靠譜的金主來支援Redis的可持續開發。

大約1年前, Redis還只是內部專案,沒有任何開源的計劃。它不過是用來解決web應用程式擴容時遇到的一系列讓人棘手的問題而已(應該是使用者會話快取)。

但是開源對我來說實在太有吸引力了,我根本無法抗拒這樣的誘惑。我可是已經在開源界活躍了10年了(元老)。把程式碼就放在個人硬碟上實在是一種浪費。所以幾周之前我就把Redis開源了,釋出了它的第一個公開版本。結果很快一堆Redis使用者就來了。這又促使我繼續為Redis增加更多的特性,同時還要保證程式碼更加穩定。

最近一段時間我有點不務正業,我為Redis付出的努力超出了我的本職工作——我是兩家小公司的聯合創始人,在這裡我和朋友們製作web應用程式和ios app。

不過今年以來好事就接連不斷,我發現Redis越來越流行,我又從中學習了好多好多東西。我看到了Redis社群規模越來越大,很多對Redis感興趣的朋友們都在爭先恐後地分享他們的知識。但是這一切對於我來說卻變的愈發艱難,既要完成我的本職工作,還得繼續開發Redis。開始Redis不過是我的個人愛好,程式碼很簡短。但是現在它卻逐漸變的複雜,而且還在繼續新增一些特色功能,例如SortedSet、虛擬記憶體和AOF持久化。

有一點必須謹記,Redis是一個「資料庫」。當你收到一個bug報告時,它可不是那種“flash影片播放崩潰了!”這種型別的客戶端bug。有很多商業公司在使用Redis,裡面放的是實打實的業務資料。你必須馬上解決掉這個bug,你需要提供非常穩定的程式碼。這就是我所理解的Redis開發工作,它的使用者和消費者可不是那些只是想把你的程式碼拉下來跑一跑的極客程式員們。

商業模型

有幾個原因讓我不得不為Redis尋找一個可行的商業模型。我並不想提供商業顧問服務,或者為一些特別的公司開發一些定製化的Redis版本。我更想做的事是繼續在Redis上搗鼓一些非常hack的東西(通用的),而不是要讓它來適應五花八門的實際應用場景。

我需要一個以產品為基礎的商業模型(需要掙錢養活自己),但是如果不把Redis閉源了,還有其它更好的解決方案麼?

我的答案是製作一些Redis工具包,這些工具包可以讓我們更加方便地監控Redis的工作狀態。我要把這些工具包賣出一個好價錢,這樣我就可以有足夠的收入來源來支撐我全職開發Redis了。

但是要開發一個商業級別的工具談何容易。你要為客戶們編寫完善的操作檔案,僅僅是完成最基礎的邏輯功能開發都不是那麼一丁點的工作量。再說想把這樣的工具賣給一大堆的客戶就更難了,它的潛在消費者一般都是那些Redis使用非常嚴謹的公司。

幸運的是有很多公司都在主動聯絡我,希望可以僱傭我來全職開發Redis。這幾周以來,我陷入了困獸之鬥。到底是繼續為Redis尋找一個可行的商業模型,雖然希望極為渺茫,還是選擇加入一個靠譜的公司繼續把Redis發展到一個新的里程碑呢?

VMWare

有一個非常直接的原因我選擇了VMWare作為Redis的大本營是源於跟他們做了一次愉快的交流——關於虛擬機器的內部實現。

哈哈,沒錯,VMWare是一家技術非常強大的公司,裡面有很多同行每天都在做著和我差不多的工作。他們也很想瞭解Redis內部實現的細節、應用場景還有進一步的最佳化方案等等。

另外一個很重要的原因就是VMWare對我承諾今後會讓Redis更加開放。他們想讓我繼續開發Redis,以一種更專業的方式來服務更多的開發者,這在之前我都是不敢想象的。

不止是Redis可以繼續保持開源,Redis工具也可以繼續開源——這就是VMWare最初向我丟擲的橄欖枝。

這也是為什麼加入VMWare讓我如此激動——我們可以繼續一起努力讓Redis發揚光大。

很感謝VMWare為我提供了這樣的好機會。不過眼下Redis的開發工作會有那些進展呢?目前並不是很多,估計要到下一步等我有足夠的時間和支援(money & tech)了。當前我會在西西里島——我的家鄉繼續推進一些新功能,用我僅有的一點時間。也許你會覺得Redis作為一個年輕的開源專案已經足夠穩定了,不過有了VMWare的支援,我們能在Redis的質量上做的更好。

還有一件事我非常享受,那就是花點時間打磨我的Redis書籍,我幾個月之前就已經開寫了。只不過時間過於緊張,所以一直未能完成。

有了VMWare的支援,一切皆有可能。我能保證你們(Redis使用者)也將儘快享受到我們的工作成果。

這可不是我一個人在意淫!不信,你們可以看看VMWare雲端計算部門Derek Collison的博文VMWare成功招進來了Redis的核心開發者。^_^



如果你對 Dubbo / Netty 等等原始碼與原理感興趣,歡迎加入我的知識星球一起交流。長按下方二維碼噢

目前在知識星球更新了《Dubbo 原始碼解析》目錄如下:

01. 除錯環境搭建
02. 專案結構一覽
03. 配置 Configuration
04. 核心流程一覽

05. 拓展機制 SPI

06. 執行緒池

07. 服務暴露 Export

08. 服務取用 Refer

09. 註冊中心 Registry

10. 動態編譯 Compile

11. 動態代理 Proxy

12. 服務呼叫 Invoke

13. 呼叫特性 

14. 過濾器 Filter

15. NIO 伺服器

16. P2P 伺服器

17. HTTP 伺服器

18. 序列化 Serialization

19. 叢集容錯 Cluster

20. 優雅停機

21. 日誌適配

22. 狀態檢查

23. 監控中心 Monitor

24. 管理中心 Admin

25. 運維命令 QOS

26. 鏈路追蹤 Tracing

… 一共 69+ 篇

目前在知識星球更新了《Netty 原始碼解析》目錄如下:

01. 除錯環境搭建
02. NIO 基礎
03. Netty 簡介
04. 啟動 Bootstrap

05. 事件輪詢 EventLoop

06. 通道管道 ChannelPipeline

07. 通道 Channel

08. 位元組緩衝區 ByteBuf

09. 通道處理器 ChannelHandler

10. 編解碼 Codec

11. 工具類 Util

… 一共 61+ 篇

目前在知識星球更新了《資料庫物體設計》目錄如下:


01. 商品模組
02. 交易模組
03. 營銷模組
04. 公用模組

… 一共 17+ 篇

原始碼不易↓↓↓

點贊支援老艿艿↓↓

贊(0)

分享創造快樂