Ops at GitHub has a unique challenge - keeping up with the rabid pace of features and products that the GitHub team develops. In this talk, we'll focus on tools and techniques we use to rapidly and confidently ship infrastructure changes using Campfire and Hubot as our primary interface, and the benefits we've seen from this approach.
Hubot, GitHub's open source chat bot, is completely revolutionizing how we do ops at GitHub. Automating deployment, graphing, monitoring, provisioning, tweeting, and many other things with Hubot has enabled and enhanced our culture of remote work. We're standardizing how we interact with the applications and servers that run GitHub by continuously expanding our library of Hubot commands that any GitHubber can run in multiple Campfire chat rooms. Interacting with Hubot in the middle other of conversations has increased our awareness of what other GitHubbers are working on and the speed at which new team members learn common practices. In this talk, I'll give examples of how we deploy and interact with github.com via Hubot, describe benefits we've seen from this approach, and describe how you can bring ChatOps into your daily workflow.
Assumption 1: Group chat is an great tool for collaboration Assumption 2: With enough code, anything is possible
Proposal: Write code to create a robot helper for you group chat to handle menial, annoying things for humans
You know about lmgtfy.com, ie let me google that for you? What if, every time you had a question about how something works, or where to find something, or what to do, you could simply ask a robot helper? For example:
How can I contact customer X?
Where are the NewRelic graphs for Y?
What's the deal with billing for customer Z?
How many alerts have there been in the last 24 hours?
Should I make an iced latte, or a regular type latte?
Rails Machine has been a distributed team for many years, and group chat (specifically Campfire) is a great tool to work together to get stuff done. In order to serve our customers, we have to interact with a dozen or so SaaS, self-hosted, or self-written applications, many of which are only loosely coupled. Over the past two years, we've been slowly building our robot helper to help navigate those services, to connect the dots, and generally make our lives easier.
During this talk, we'll be exploring the journey from lulz-based robot friends, to (nearly) full fledged robot workers that make their humans equivalents look like chumps. Or at least, look like chumps that can make the robot even smarter.
At GitHub, system administration is a first class citizen. Changes are collaboratively developed, peer reviewed, revision controlled, and ship with tests. Automation isn't just for production; we apply the same techniques to our individual developer workstations. In this talk, I'll give you a sneak peek into how a GitHub developer experiences Ops. We'll start with setting up a new machine using Boxen and jump right into the specifics of how to deploy and ship a new feature using the 'ChatOps' shared command line. I will show you how we deploy configuration changes to individual and groups of hosts. We'll finish up with a look at how GitHub instruments application performance and exceptions to make it easy to spot newly introduced issues.