今天翻了一下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的博文。^_^
阅读更多精彩文章,用微信扫一扫上面的二维码关注我的公众号「码洞」