jclouds
project founder Adrian Cole (see his video talking about the benefits
of using Cargo to automate app deployment to vCloud Express) updates us on
recent cloud discussions that we want to share with our vCloud blog fans.
First Redis
Meetup
Engine Yard recently held a meetup on Redis,
the first in the world I hear. About 50 developers attended. It was a very very
very geeky crowd. Very C, Ruby and Python centric, too, with some Clojure
fans as well. Java was not mentioned in discussions or asides.
Developers are very happy with Redis, which
is essentially an atomic data structure server. They love the ease of creating
tools on its API, which was lamented as a problem in and of itself, since
everyone does it differently. This “differently” problem surfaced in the
naivety of Redis, which doesn't handle scaling well. For example, there
is only one master of data, so people implement sharding in the clients and
make up their own code (consistent hash) to pass requests to the right server.
Not only is this difficult to get right, but since they are doing it
differently, you cannot use the perl Redis client on a Redis server being
accessed by the ruby one, since they don't use the same sharding approach. This
part feels very immature, but very consistent with the low clustering aptitude
present in other things like memcached.
Redis is
Fast to Start
However limiting, it didn't seem
to be a big deal for a few reasons. One is that most developers cannot or do
not have the patience to setup traditional data grids. Redis apparently
takes under two minutes to get running. The other is that developers are
using Redis for extremely focused bits and only using one language. For
example, Engine Yard is using Redis to deal with the polling problems of cloud
APIs like EC2. Essentially, their pollers hit the Redis server, and update
only if a state change happened (like running to terminated). Their other
code only pays attention to Redis, and therefore doesn't spam on multiple
pollers saying the same thing is terminated. This is a very focused use
and all their code is ruby anyway, so it isn't a big deal. Moreover the data
size is measured in kilobytes so sharding is not useful. Other uses were
to deal with deduping redundantly delivered messages. This was due to
rabbit mq not having a good HA story outside erlang itself. Ezra Zygmuntowicz, a co-founder at Engine Yard, basically sets up redundant exchanges and has some
wrapper code to use Redis as a distributed lock. Craigslist uses Redis as
a queue for spam filtering. There were a couple mentions of removing rabbitmq
with Redis in the future, as provoked by the audience. The audience
absolutely loved Redis founder Salvatore Sanfilippo for being very responsive
24 hours a day and keeping the API easy to use and install.
Let me know if you’ve played with Redis yet. What do you
think of it? Comment below or share your thoughts with me on Twitter at
@jclouds or vCloud at @vcloud. We’ll also be talking about Redis on the vCloud Facebook page. Become a
fan!
