Having low expectations due to being old and jaded, I downloaded the Slack-alternative package known as MatterMost and then proceeded to install it onto Red Hat with their instructions. (Slack would seem like an obvious choice, but it’s a less viable candidate for enterprise due to a number of possible reasons: contracts with competing vendors, auditing, corporate secrets, etc.). First and foremost, I appreciated the readability of their straightforward description regarding the prerequisite steps, even before installing the actual product. (Since my teenage days of being a part-time administrator are long gone, I need somebody to hold my hand.) The installation of the product itself was also fairly easy, and I was able to get it working quickly thereafter. If I hadn’t been busy with a few other things at the time, it might have taken me only a few minutes to prepare everything. So, kudos to Mattermost for that! Plus, just like Slack, I was able to communicate with the server through a number of available clients.
But I wasn’t here for just an inhouse chat server, though that’s pretty cool. Instead, as I mentioned in my last post, I was here to investigate the possibility of deploying useful bots for my team. In the same way that Atomist’s bots help software companies manage their projects, I’d like to create my own bots that can help monitor and control the custom distributed architecture that exists inside our walls. For the more interactive bots, they have two types of web hooks: incoming and outgoing. Since I wanted to keep it simple, I went with the Slash commands. Now, you have to pay close attention here, since they have explicit instructions on how to implement the callback correctly. (Do not stray from the instructions, or you will face certain doom.) However, if you follow them exactly, the Slash command will work without fail. I created a simple bot that returned markup text for a table, which displayed the status of several daemons running on our servers. Again, I was impressed!
So, now, what’s next? Well, long ago, I wrote an InfoQ article about creating web apps that were driven by a MDD architecture. In this case, I don’t see why the same couldn’t be employed with a set of bots. With a little bit of planning, I can envision simple yet effective tools available through such a network. Constructed within a MDD framework, their functionality could be adjusted with just a few modifications to metadata. So, much like a Silicon Valley project manager can get the status of a software build while texting on his phone with a colleague, it’s now possible for me to chat and run a few commands against my distributed architecture. (Finally, I won’t have to whip out the laptop and dial into the VPN every time something happens.) And all while still fitting into corporate compliance! Well, there’s still a lot of work to be done, but it’s now looking much more feasible now than a few weeks ago. And I still have to sell it to the brass…but I got my fingers crossed.