started as an internal project more or less one year ago. Initially it was not meant to become an open source project. The initial goal was just to make it simple for us to scale a few critical things in different web applications.
But it was hard to resist the open source soul there is in me :) It's been more than ten years that I have contributed to the open source world. Code sitting just inside your HD is a waste in many ways. So a few weeks later I released the first public version of Redis, and it started to grow in users, who in turn pushed me to add features and provide more stable code.
In little time Redis was a bigger effort that my "real" work, that is, the work I was doing for my two companies (I'm the founder of two small companies, and I work with my friends here, doing web apps and iPhone apps).
Basically this year was full of good things, I saw Redis becoming more and more popular, and learned a lot of stuff in the process. I saw the Redis community growing, full of interesting people willing to share their knowledge. But at the same time it was hard
, I had my work, and I had Redis to develop. And while initially Redis was just an hobby and the code itself was very small, it started to get more complex, and to get more interesting features like sorted sets, virtual memory, append only file.
To put this in the right context, take in mind that Redis is a DB. When you receive a bug report, it's not like "VLC is crashing playing this particular FLV video". There are people doing real business with Redis, with their real data. You have to fix the issues ASAP, you need to provide very stable code, or at least this is how I see it. Your users are your customers, not just people downloading some hackish code trying to make it working.
This are the reasons why I started searching for a viable business model for Redis. My problem was that I was not
willing to do services, that is, consultancy or specialized versions of Redis for specific companies needs: I wanted to spend most of my time hacking on Redis, not trying to make it working in different real-world contexts.
So I needed a product based business model. How would I achieve that without closing Redis itself?
My best answer was to start building Redis Tools, a set of tools to make it simpler to work with Redis, to get statistics about the dataset, to check how it was working. The idea was to sell this tools for a reasonable price, in order to have income strong enough to switch full time into Redis development.
But to develop commercial quality tools, write documentation for them, offering minimal support, handling the logistics
part, is not trivial, and Redis Tools are not exactly something you can easily sell in large numbers, as the potential customers are companies using Redis seriously.
Fortunately there was an alternative, a number of companies started to contact me about hiring me to work at Redis full time. In a few weeks the condition was totally shifting, from searching for a business model with little hopes of success, to choosing the best company to join in order to bring Redis development to a completely new level.
One of the strongest indications that VMware was the best home for Redis was how our contacts started: with chats about VM internals.
Yes, because VMware is a technological company. A strong
technological company, where there are many people doing similar work to the one I do for Redis everyday. They wanted to know more about Redis internals, use cases, possible optimizations, and so forth. Since the early stages the stress was in the technology.
Another awesome factor was how VMware is committed to leaving Redis completely open. They want me to develop Redis to continue helping developers to get the most out of it, in a better way than was possible before.
Not only Redis will remain a totally open source project, but Redis Tools will be open sourced also (and this was an idea I got from VMware itself!).
This is why I'm truly excited about joining VMware: together we'll build a better, free Redis, bringing Redis development to another level.
I'm very glad VMware is offering me such a great opportunity. But in practical terms, what will change in the Redis development? Well, not so much, apart me having much more time and support. I'll continue working from home, here in Sicily, I'll continue pushing features forward in little time. Even if you think Redis was already stable enough for being such an young project, with VMware I'm sure we can establish better quality assurance processes.
Another thing I will enjoy is to be able to spend some time writing the Redis book I started many months ago, but was unable to finish due to time constraints.
VMware is making all this possible, and I'm sure you'll enjoy the work we'll do around Redis as much as I will.
Ah and I didn't invented all this myself ;) You can check the VMware blog post
written by Derek Collison of the VMware Cloud Service Division ;)