I know that both Microsoft and Richard Stallman have gotten a little older and a little wiser…but I certainly never expected a meeting of these two minds.
Well, it’s that time of year again, where Redis Day storms the ports of New York, brandishing corporate video that implies Redis is the only hope for humanity’s salvation. I don’t know if that’s necessarily true, but like last year, they do know how to pick a location. In any case, the first of the 2-day event was an introductory session to Redis, not really necessary for those already familiar with the platform. I opted to go out of curiosity, and I’m glad that I did.
Even though most of the day was a rehash of what I already knew, the intro did point out to me some features that had been added with the most recent version, like the UNLINK command. (I’m not known for always reading release notes.) I also learned that the “master-slave” terminology has now fallen under, as Jacobins would probably describe it, the guillotine of progress:
Actually, I’m not sure if the new “master-replica” terminology is a better set of terms. If you still use the term “master” in this scenario, doesn’t it imply that the other party is a slave? And when I think of replica in this situation, the term replicant comes to mind, and that doesn’t really sound all that much better. But I digress…
The second day of the event was more interesting. To a small extent, some of that could be attributed to the general speakers. We heard from a few people about certain business cases, as they described how Redis was used beneficially in their work. But for me, the best parts of the day were the beginning and end, when we got to hear from the brilliant creator of Redis: Salvatore Sanfilippo (a.k.a., Antirez).
Since most of the time was spent more towards the corporate pitch, it was refreshing to hear Antirez talk about all of the technical features in the newest version of Redis and how the need and implementation for these features came about. All of which was told using his interesting drawing style, which I had never seen a presenter do before. But I definitely appreciated it, since I tend to do the same thing whenever I describe anything with precision. (Even how to properly build a sandwich.) I also appreciated it since he and I probably have the same skill level of drawing:
Even though some people might tune out during these kinds of events (especially at the end, when people are looking to beat the crowd by leaving early), I enjoy the technical presentation as a breath of fresh air. Who knew that a detailed explanation on the evolution of the Redis EXPIRE command could wake me up from my imminent coma? I was just as surprised…almost as much as Antirez was when I approached him later, to thank him for leaving Sicily to speak and to ask him some questions. (Note to self: pay attention to your surroundings and never ask questions of someone when they’re waiting to use the bathroom, especially a database guru. You may not get the best answers, and you will feel a tad awkward when you realize your mistake.)
So, what did I take away from that day? Well, I could say that Redis is definitely growing its user base. Just from a glance and a shoddy memory, I’d say that the crowd was nearly double the size of last year’s event. Plus, I heard about a more diverse set of projects using Redis than ever before. From all that, I would say that it’s becoming a bigger fish in the DB sea.
So I guess the ultimate question is: who’s going to try and eat the growing fish before it gets too big? My money is on Oracle.
So, after the last time with Redis, my team and I still felt uninformed about the features that Redis offers with its Enterprise version. And so, we were told that another session was coming up, one that would perhaps give us the answers we sought. Alas, that wasn’t really the case…but, hey, Redis definitely knows how to play the part of being a host. In my book, you get points for that.
This time, the event was held at Convene, which is uptown from Galvanize. In terms of accommodations, this hosting space was definitely one of the best that I’ve ever been to, especially in terms of food and a view:
And you have to appreciate any place that takes its coffee and yogurt seriously:
In the end, though, it seemed to be a similar presentation to the one a few months ago. We already knew about the HA functionality and regional synchronization that was available through the Enterprise version, but we were looking to possibly see it in action, along with the other bells and whistles. Oh well. Maybe next time…especially if it’s held again at Convene!
So, I attended a Redis workshop a few days ago, at the New York “campus” (which is a buzzy, DB-esque industry word that I loathe) of Galvanize. Even though I usually don’t go for these meetup/workspace type of places, I’ll admit that this one was rather pleasant. Unlike other places, it did a good job of finding that fine line between casual and professional. For example, no beanbags anywhere. Because as much as I love beanbags myself (i.e., I have two at home), we can’t look at your screen together unless I get on my knees or I crawl onto the beanbag with you…which might be uncomfortable in many ways for the both of us. Plus, the space had reliable WiFi for most of the time I was there, unlike some other places.
Even though I’ve already been dealing with Redis at work for a little while now and generally impressed with its performance, it never hurts to try and learn something from the masters. (Unfortunately, AntiRez himself did not leave Sicily and fly over to teach us.) I was curious how they were going to showcase the tech and if we were going to just sit there and watch, when they instructed us to download Docker. As it turned out, we were going to learn the lesson via containers with Jupyter Notebooks, which I had never heard of before. And since I yearn for the era of interactive documentation, I couldn’t have been happier. (On a side note, I only recently learned about KataCoda, which I love just as much, if not more.)
Even though the second half of the day was your familiar salespitch for Redis Enterprise and Redis Cloud (which did seem to be an appealing purchase), the first half of the day was when they taught about the product itself. For the most part, it wasn’t anything new to me, aside from the occasional bit of trivia. (Lua is the language used by the Redis CLI? Huh. It’s come a long way since being just the scripting language for WoW skins.) I did learn a few tidbits about the data structures (like the existence of HyperLogLog), but since I use Spring Caching in our microservices, we don’t pay that much attention to them.
Instead, it was interesting to learn about the features of Redis that we weren’t even leveraging yet at work. For example, you can write your own extensions to Redis using C. Which I’d be tempted to do just because, since I miss writing in C…Also, it was interesting to learn about the various modules that were already available for Redis, with functionality ranging from machine learning to bloom filters. And that’s when I recognized a pattern seen before. Much like every other tech company, there seems to be the desire to get into whatever is hot, to survive as a company by being more horizontal. However, I would implore Redis to be careful and to never neglect your core mission. I, for one, don’t really need machine learning, but I’d like Redis to work with Spring (i.e., Pivotal) to further develop the Spring Data Redis layer and make it configurable, so I can easily direct reads to slave nodes. I need that, not machine learning. So, even though I didn’t learn a great deal about Redis by attending, I got to see the general direction of the company. In that way, I’d say that the trip to Galvanize was worth it.
That, and spears of fresh fruit.
You just can’t argue with fresh fruit spears, where the fruit is cut into various geometrical shapes. It just plucks the right strings of geeky hearts.
A few weeks ago, Microsoft VP Scott Guthrie stopped in NYC as part of his promotional tour for Azure’s cloud services. Normally, I don’t really care for these long informercials, but I decided to go in this case for two reasons. One, it took place in Cooper Union’s Great Hall, which was something historic I had always wanted to check out. Two, even though I’ve played with Azure’s offerings on occasion, I was curious what Guthrie would highlight in his presentation, especially after friends and colleagues had talked up Azure in the last couple of years. So, I went, and I was surprisingly glad that I did.
A few years ago, when I learned of some of Microsoft’s ambitions in the cloud space, I bought some MSFT shares and thought that they might catch up with Amazon in the cloud space. Impatiently, after a year, I began to have my doubts, and I sold off the shares. If you look at its latest price, that was clearly a mistake. I should have held onto them, and while listening to Guthrie’s presentation, it became painfully obvious as to why. Of course, he talked about the inherent power of Azure, with its various data centers around the world. (Which were all shown in a dramatic video seemingly directed by Michael Bay, with an intensely dramatic score blaring in the background.) However, it was the maturity of the platform, with its various tools and considerations for the user that was impressive.
Even though I’ve only dabbled with cloud platforms, I especially appreciate their raw power and penchant for structure. Even when you create apps that are meant to be deployed for the cloud, it heavily reinforces structure in their templates for developers. For example, if you build a web app within Visual Studio destined for Azure, it refers to queues in the project template by default (which are automatically available in Azure). You might question its need to reinforce such a feature through templates, thinking that the usage of queues in a web app as obvious. “What vital web service that receives a POST wouldn’t automatically queue that request, since the resources to fulfill the request might be temporary unavailable? Who wouldn’t do that?” Oh, you’d be surprised. Let’s just say that such bug-ridden deployments are not unheard of.
First, Guthrie talked about the typical use cases of cloud offerings, like creating and deploying a serverless app with ease or creating a container and deploying it with Kubernetes. Even when he talked about deploying apps to specific data centers, those features were interesting but expected. (I still have mixed feelings about the Azure Portal dashboard, but since that’s an argument about interfaces, that’s an entirely different subject.)
However, I was more impressed when he started talking about the other free tools offered by the platform that were supplemental. For one, its inherent monitoring system was akin to Splunk, and it could be used to monitor and query your entire setup (apps, databases, hosted servers, etc.), and you could customize your system instances with networking rules (like lock port 54545 every morning). Next, the number of devops options seemed more diverse than I remembered (with build options including Maven). There was even a tool which would suggest how you could reduce your expenses, like by consolidating servers and minimizing resources (storage, # of dedicated CPUs, etc.). After watching some examples of machine learning and image recognition, my only regret was that I had no reason to use them in my own projects.
After several years of concentrated effort, they had created an impressive, mature cloud platform that definitely could give Amazon a run for its money. I only had two points of contention. One, this promotional tour was somewhat eponymously named The Red Shirt Tour, since I was told by staff that Guthrie has a certain love for them. Aside from a terrible name for the tour, I would say ditch the symbolic shirt, since that will forever more belong to Jobs. Pick a hat, and in order to reinforce Azure, go for a blue beret instead.
Two, they served Subway for lunch. To which the answer is always no.
Yes, it was free. However, just like if you were offered torture for free, you shouldn’t accept it.
Aside from that, though, I walked away impressed. Nicely done, Guthrie and MS!
WARNING: This post is a commentary. If you’re looking for anything technically insightful, you might be disappointed.
Out of curiosity, I attended an Azure training event a few days ago with a group of colleagues at Microsoft’s Reactor in NYC. Though I’ve played with Azure a few times, I could definitely use more insight. (Since it’s been ages I’ve been to a training event, I also wondered if I was missing out on anything. I’ll admit that the food has gotten better.) Before I start, I commend Microsoft for having made leaps and strides in various respects, particularly with Linux and open source. Also, I should commend the staff who conducted the event. They were very helpful and considerate, and I can only imagine the difficulty in a situation where you are dealing with a room full of disgruntled developers. So, they performed well despite given constraints. Now, the actual event on other hand…that’s a different story. In many ways, it reminded me of my general impression of Microsoft these days: sometimes getting a little too ahead of themselves.
So, the general idea was a good one, introducing people to Azure using a hypothetically fun scenario. In this case, the scenario depicted was one where you help save astronauts on Mars, all through a series of printed-out “classified” tutorials on contemporary topics (IoT, serverless computing, etc.). Okay, decent concept. But the devil is in the details…First, the event space didn’t have enough bandwidth to accommodate the laptops of several dozen people. (As soon as I saw that there were no LAN jacks and that it was WiFi-only, I knew that we were in trouble. It’s common knowledge that between Windows updates and NuGet packages for project builds, you’re gonna need plenty of bandwidth.) Second, the presented materials were sometimes confusing (hyperlinks on printed paper, etc.) and were loosely tied to the general theme. For example, one exercise had us utilizing their face recognition API, which is separate from Azure for some reason. Exactly how this helps stranded astronauts and why we were using pictures of college students, I couldn’t tell you. Finally, the tutorials themselves were simple exercises of copying code and hitting menu options in order to showcase certain technological features.
However, there was no tutorial that gave a general idea of what Azure is really about: being a cloud platform. The basic framework was ignored (spinning up a VM instance, loading a new database, etc.) in order to tout its more niche features. Personally, though, I think that the goal of the marketing team should have been more practical and focused when planning this event. For example, use a theme of a skunkworks team within a larger organization. How could such a team leverage Azure to become innovative? In other words, provide inspiration and ammunition to your base of enterprise users that doesn’t currently use the cloud yet. Though I understand the marketing team’s goal: to appeal to both enterprise AND startup customers for Azure. Obviously, management has envisioned that as the strategy to overtake AWS.
Which, obviously, I think might be a mistake. For example, how many people with Arduinos and Raspberry Pis are looking to create IoT products with .NET Core? True, I’m not an expert, but after spending a few minutes with it, I still can’t see it winning too many hearts and minds. Instead of spreading their resources too thin, it might be beneficial to double-down on their bread and butter, especially since there’s already so much competition in other verticals. After all, there are plenty of enterprise customers to still win over. In fact, I can think of one or two opportunities in niche spaces that are hidden among enterprise users. I know that I don’t have the mile-high vantage point, so I’m not privy to certain details…but since I’m leery of wobbly ladders, I tend to prefer low-hanging fruit. 🙂