I am enjoying my time as a Developer Advocate here at Couchbase. I get to write blog posts, make videos, interact with the community, and go out to a bunch of conferences and meetups. My boss, Arun Gupta, has been very supportive, as have my fellow developer advocates.
Just to give you an idea of what it's like working with Arun: I had a crazy idea that I wanted to try at some point. I told him about it, and he said, "Yeah, go for it!"
Couchbase Server is meant to run on a cluster of hardware, not just a single node — cluster is the first letter in the Couch acronym! A lot of the engineers here develop by spinning up a cluster of VMs or Docker containers or whatever. That's effective and efficient, but if I'm trying to explain Couchbase to you for the first time, I thought it would be more interesting if I had something tangible to show you. Something visual, visceral, and even interactive.
The problem is that to show you a physical cluster requires multiple physical machines, a router, power cables, etc. Maybe I could set up a lab here in my office, but I can't take that out on the road very easily.
While I was in Mountain View meeting with my team, I heard about another project that uses Couchbase Lite and Couchbase Sync Gateway. It used several Raspberry Pis that acted in concert together to help visually demonstrate the flow of data and how syncing worked.
I don't think I came up with it originally, but someone in the room thought it would be great if we could do the same thing with Couchbase Server. The only problem is that there isn't an ARM version of Couchbase Server.
But the idea stuck with me. I researched to see if there were any Raspberry Pi-like maker boards that had x64 CPUs and could have at least 2GB of RAM. There are a few, but they are pretty expensive. I kept looking, and I eventually came across "compute sticks." They are like bigger Chromecasts, except they run Windows or Linux on x64 architecture. Some of them have 2GB of RAM built in. They have USB, HDMI, and Wi-Fi, and some of them were under $100. Now the wheels were turning. I could certainly travel with a handful of those.
I kept researching and thinking about this. I had a picture in my head, and (inspired by a blog post from David Neal on hand-drawn illustrations) I drew it (badly) on my white board.
I could maybe get by just carrying around three compute sticks and a router, but if I had everything wired up and contained in a single suitcase, that would be even easier.
I can take this suitcase to a session or to a booth, open it up, and start using a full cluster. I could demonstrate what happens if a node in a cluster goes down. I could invite a volunteer to unplug a node of her choice and show what happens. I could then show what happens if that node comes back online (or what to do if the node is offline for good).
Plus, it' just a great conversation starter. It's a cool looking piece of nerdery. Once I get it working, I could dress it up with lights and stickers for even more fun.
When I tweeted about it (I'm @mgroves on Twitter), Gerd Aschemann tweeted that something similar had been built called "cloud in a box." Now I was really excited because my idea had already been proven to be possible.
I just started working on this. I'm trying out some compute sticks to see if I can get them to run Couchbase Server. I plan to blog about this project as I go, so stay tuned!
If you have any tips or suggestions for this project, contact me on Twitter, or email me at (matthew.groves AT couchbase DOT com).