InfraCloud’s BotKube has had an eventful journey, over 1000 installs and being in the lists of useful Kubernetes tools. Looking back it’s humbling to know that BotKube began as a simple hackathon idea in 2018.
BotKube is a messaging bot that lets you monitor, debug and run checks on your Kubernetes resources straight from your favorite messaging platform such as Slack, MS Teams, etc. How BotKube came to be and how far it has come are a testament to InfraCloud’s values of being resourceful and staying ahead of the curve.
Like it is with many great ideas, BotKube was born out of the spirit of innovation.
We organise regular ‘Infrathons’ at InfraCloud, where Infranauts pick one idea, work on it, demo it, and open source it. One such hackathon was the Dope December Marathon in 2018.
Hrishikesh had coined this idea of being able to talk to a Kubernetes cluster over Slack multiple times during tea conversations. He also was convinced that we should invest in implementation of idea, because early on we did not invest in Kube-Checker and saw the same implemented by a large cloud vendor. So Hrishikesh added this idea to list of potential ideas for Hackathon.
Infranaut Prasad Ghangal was keen to participate. While perusing the listed topics on the Confluence page, one caught his eye. A topic Hrishikesh had suggested prompted creating a mechanism through which one could get alerts instantly on Slack.
Prasad picked it up and joined forces with co-Infranaut Sanket Sudake. The idea was to build a bot that could monitor events and notify about failures on a communication medium. Not only that, it would also be bidirectional, making it possible to debug by messaging the bot to get a response.
Upon seeing Prasad’s idea entry, I again discussed it with Hrishikesh and later Prasad himself. I became convinced - BotKube’s potential was obvious.
Prasad and Sanket went through a lot of reviews to make the design extensible so that more integrations could be added later on.
Finally, BotKube was presented at the Infrathon. What stood out was the originality of idea and the implementation. The working demo let the attendees experience BotKube first-hand. And so, BotKube got voted as the winner of Dope December 2018.
After the Infrathon, this homegrown project was made open source. And it took us by surprise when people started using it and showing it love by sending PRs and raising issues! It started featuring in blogs of developers, crossed 1000+ installs, and we started getting interest for adding more integrations.
We believe the following played a huge part in making BotKube a success:
While some tools did exist, they were either not well maintained, or not extensible, or did not support multiple platforms. Unlike other tools, BotKube was truly ahead of the curve and created keeping the future in mind. It is extensibility and configurability and ability to integrate with multiple communication mediums was one of the key factors in finding love with developers.
It offers a one-click installation, support for fine-grained configuration and custom resources, allows users to specify their own filters or checks, and supports the DevBook handler. There’s also extensive documentation provided on BotKube. The best part: there’s no tracking as the BotKube backend sits in the users’ own Kubernetes cluster.
After becoming open source, the scope of work increased and the team got busy addressing requests for further integrations. When in 2019, Microsoft Teams was rebranded, a lot of the integration requests coming were for Teams.
However, Microsoft didn’t have SDK support for Go language and there were no visible plans for implementing it from when we asked in community.
So the team decided to change the script - literally! We wrote the SDK from scratch needed for Teams integration in Go. This offshooted into another successful stand-alone open source project. A couple of months later, Microsoft reached out, appreciating the initiative and offering support if any needed.
In this way, BotKube has helped us give back to the community in more ways than one. And the community gave back too with their love in the form of feedback and pull requests.
Besides getting valuable feedback about use-cases and bugs, we also received help from code contributors while implementing more integrations. What’s more, the integrations of Discord, Lark, Elastic Search, and Mattermost were added by community folks themselves.
After the hackathon, we wanted to understand if people saw value in what we had created and what the tool could do. The team wrote articles, gave talks, and showcased BotKube in various meetups and conferences, including at the Docker Pune meetup.
BotKube went from a home-grown project to one with a life of its own. We believe that at its core lies the strong culture of InfraCloud that enabled such impact. A lot can be achieved with resourcefulness, the desire to delight, candid feedback, and the will to stay ahead of the curve.
BotKube continues to be open source and being maintained by Prasad for whom it is a labor of love. In the near future, we plan to support enterprises with advanced features and custom requests. We also talk about BotKube in our Bootcamp using it as an example of what is possible. Neo-infranauts are invited to contribute and become part of this legendary project.
Would you like to work in an environment where you’ll be ahead of the curve? Come join us at InfraCloud!