Settings

Theme

IRC bots for Laziness, Impatience, and Continuous Deployment

eng.wealthfront.com

29 points by arosien 15 years ago · 14 comments

Reader

thwarted 15 years ago

This is exactly why I wrote https://github.com/thwarted/nodebot, as a I ran into problems scaling and securing things like supybot, and integrating it with shell scripts. nodebot is announce only, and doesn't join the channels (so your IRC server needs to be setup to allow that), and since it's not centralized, high traffic from one node/service that ends up getting rate throttled by the server doesn't delay messages from other nodes/services. Each machine has an identity, but it can be configured to have a different identity (because I'd rather that git messages come from "git" rather than from the machine that ran the hook).

We use it at yelp for monitoring all manner of system status. There's separate channels for scribe log processing, nagios alerts, code deployments, and load balancer status. Our git hooks announce when developers push and merges are happening, and who's branches are being deployed. We get announcements when config files change. And it's all on-demand, if you're not interested in seeing it, you don't need to join the channel, IRC is perfect for these kinds of updates.

  • arosienOP 15 years ago

    Nice. Last.fm has a nice post at http://www.metabrew.com/article/how-we-use-irc-at-lastfm.

    We also have separate channels for each message type. IRC is pub-sub, yay! Plus you can direct-message a bot and it will DM you back, to not pollute the channel you're currently in.

    Do you have any bots that take commands? I think that's where it gets really useful.

    • thwarted 15 years ago

      I've considered it, but that wasn't the use case for nodebot. In order to do some of that, you'd need to be able to run commands on the machine the bot is running on, or have the bot keep some log of state as messages are fed into it, both of which are somewhat non-trivial in terms of storage/query-ability or security. We have a few modified bots (supybot is the most common, I think) that developers have written and run themselves, but I don't think any of them are much more than playthings.

      I could definitely see having the ability to allow a bot change the topic of a channel though, so, for example, the deployment status channel's topic shows the most recent version deployed, or the status of the current deployment, for those case where you're not sitting in the channel. Also, the ability to control nagios from IRC would be interesting, but we just use shell scripts for that right now (which is non-ideal in other ways).

mdaniel 15 years ago

My complaint with IRC (and I freely admit that it could be that I am not using the "right" client) is that there is just this sea of text on the screen. There is very little formatting to speak of, and it reminds me of everyone talking at once on a conference call.

slighty off-topic: I am proud to say that I was introduced to Wealthfront via HN, and I was so impressed by their engineering blog that I went to their website. And it sounded cool, so I joined.

And ever since then, I continue to see some awesome things from them, and so far their investment-matchmaking service has paid off, too.

Win-win if I've ever heard one.

  • axod 15 years ago

    I'm slightly biased, but this is what I aim to solve with Mibbit - make it a little more friendly and clean looking. Hopefully I'm headed in the right direction so far.

  • samlevine 15 years ago

    I'm a fan of irssi myself, I've found that the defaults are pretty sane and the few things I've wanted to customize could be.

substack 15 years ago

At StackVM we use an IRC bot to tell us when the servers are down. In our case the bot is just a DNode service so all the backend needs to do is connect to the IRC service, post its message, and disconnect.

http://github.com/substack/rowbit

It's a pretty great fit since we already use IRC a ton to coordinate development so we see the notifications right away.

x0ner 15 years ago

Interesting to see someone who is using IRC in this fashion. I personally have been an advocate of using XMPP in the same way. While IRC offers a good amount of features, XMPP provides the ability to scale and dive into multiple different realms. Just one example that comes to mind is constant updates from your XMPP bots, channels, etc. in a single location similar to Twitter, but for your development.

  • Zev 15 years ago

    IRC is easy. Its a basic text protocol that requires a socket and some minimal parsing to work with. Whenever I use XMPP, its never that simple. The protocol is too verbose for its own good imho.

  • arosienOP 15 years ago

    You are so enterprisey! :)

    We'll bridge protocols if we need to cross that, um, bridge.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection