ChatOps Unplugged

Post on 04-Jul-2015

202 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Join DevOps Evangelist, Jason Hand, for a discussion on ChatOps and the movement to deploy, measure, and mitigate from a chat client. With more and more teams implementing methods to trigger commands from within their favorite chat clients, the time it takes to perform specific and repetitive tasks has been dramatically reduced. In providing a real-time command history to others, we can share knowledge and learn from each other faster than ever before.

Transcript

@GoVictorOps #ChatOps

ChatOps… a beginner’s guide

~ $

@GoVictorOps #ChatOps

Jason HandVictorOpsjason@victorops.com@jasonhand

@GoVictorOps #ChatOps

Agenda• Introduction to ChatOps

• Origins

• Tools

• Benefits

• Examples

• Limitations & Concerns

• Getting Started

• Q&A

@jasonhand

@GoVictorOps #ChatOps

What do you doover and over again?

Can I do that for you?

I’ll think about it.

@jasonhand

@GoVictorOps #ChatOps

“putting tools in the middle of the conversation”

ChatOps

- GitHub (2010)

@jasonhand

@GoVictorOps #ChatOps

DevOps

To move fast and maintain stability it’s important to have a culture of automation, measurement and sharing

CultureAutomationMeasurementSharing

@jasonhand

@GoVictorOps #ChatOps

Tools

Chat clients (with channels or rooms)

Bots

Scripts

@jasonhand

@GoVictorOps #ChatOps

HipChat

Campfire

Slack

Chat

@jasonhand

@GoVictorOps #ChatOps

Bots

@jasonhand

@GoVictorOps #ChatOps

Scripts

@jasonhand

@GoVictorOps #ChatOps

Benefits

•Sharing

•Learning

•Speed

@jasonhand

@GoVictorOps #ChatOps

Multi-user terminal

Share learning experiences

Sharing

Disseminate knowledge across everyone on the team

Share learning experiences@jasonhand

@GoVictorOps #ChatOps

Learning

“everyone is pairing all of the time”

- Jesse Newland (Ops – GitHub)

@jasonhand

@GoVictorOps #ChatOps

Speed

How many clicks

does it take you?

@jasonhand

@GoVictorOps #ChatOps

Jason: Hey Dan … did you see that spike in CPU usage on Prod1.. ~ 3 minutes ago?

Dan: No. Let me check. brb

Dan: Shit. Yeah, I see it. Looks ok now. I think :-/

Jason: Think we should let Mike know? He might want to dig in to it later.

Dan: Yeah, I’ll take a screenshot and email it to him.

Jason: Would anyone else need to know about it?

Dan: Prob. I’ll cc the DevOps team so everyone knows

Old methods

@jasonhand

@GoVictorOps #ChatOps

Jason: Hey Dan. My code is ready to push when you are.

Dan: Cool. I’ll commit it to the latest branch here in a minute.

Jason: Great. Also, we should probably sit down with Nick (new guy) and show him how to do that soon.

Dan: Yeah. Once I get some time, I’ll schedule something. :/

Jason: There’s probably a bunch more stuff to show him too, but I’m not sure I even know all of the steps for everything.

Dan: We’ve got a wiki for most things, but not everything. I’ll see what I can find and email him.

Old methods

@jasonhand

@GoVictorOps #ChatOps

Jason: Hey Dan. My code is ready to push when you are.

Dan: Cool. I’ll commit it to the latest branch here in a minute.

Jason: Great. Also, we should probably sit down with Nick (new guy) and show him how to do that soon.

Dan: Yeah. Once I get some time, I’ll schedule something. :/

Jason: There’s probably a bunch more stuff to show him too, but I’m not sure I even know all of the steps for everything.

Dan: We’ve got a wiki for most things, but not everything. I’ll see what I can find and email him.

Old methods

Chat with Jason & Dan

Who else can see this conversation?

Nobody !

If using a traditional chat clientSuch as Gchat …

@GoVictorOps #ChatOps

What do you doover and over again?

Can I do that for you?

Heck yeah! :D

@jasonhand

@GoVictorOps #ChatOps

• Run MySQL command (as read-only user)• Authorize users (assign and enforce user-based roles) • Take a server offline• Bring a server online• Deploy code to a repository• Displaying the status of a JIRA ticket• Adding comments and changing their status on tickets• Query the status of API's (internal & external)• VM interaction to see host health• Monitoring service interaction to trigger status checks• Hubot scripts can be written in CoffeeScript or Javascript• Notify people not present in a chatroom that they were mentioned• Fetch logs• Rebalance shards across its file servers• List currently running jobs/processes• Kill jobs/processes• Tail a job/process• Track Customer signups• Sharing graphs for context• Store static links, mapping those links to simple, easy to remember commands

Examples

In GitHubOpening issuesClosing issuesCommenting on issuesListing issuesMerge pull requests

jhand.ml/scripts

jhand.ml/heroku

@jasonhand

@GoVictorOps #ChatOps

Example script

Show current GitHub status and messages

jhand.ml/script1@jasonhand

@GoVictorOps #ChatOps

hubot github status - Returns the current system status and timestamp.

hubot github status last - Returns the last human communication, status, and timestamp.

hubot github status messages- Returns the most recent human communications with status and timestamp.

Hubot: github status: new file: Chatops.txt 116 seconds ago

Jason: hubot github status

@jasonhand

@GoVictorOps #ChatOps

Jason: Hey Dan. My code is ready to push when you are.

Dan: Cool. I’ll commit it to the latest branch here in a minute.

Jason: Great. Also, we should probably sit down with Nick (new guy) and show him how to do that soon.

Dan: Yeah. Once I get some time, I’ll schedule something. :/

Jason: There’s probably a bunch more stuff to show him too, but I’m not sure I even know all of the steps for everything.

Dan: We’ve got a wiki for most things, but not everything. I’ll see what I can find and email him.

New and improved!

Chat Room

Who else can see this conversation?

Everybody !

Jason

Members

Dan

Nick

Mike

Jeff

Doug

Tara

@GoVictorOps #ChatOps

Graphs or it didn’t happen

@jasonhand

@GoVictorOps #ChatOps

Jason: Hubot graphite load 1 min on serverABC

Jason: @Dan … you seeing this?

Dan: Yeah.

New method w/ bots

Hubot:

Mike: That was me. I was running a giant report. Should be fine now

Nick (new guy): Cool. Thanks for showing me how to do that. ;-)

@jasonhand

@GoVictorOps #ChatOps

Big Whoop

Why is this important?

@jasonhand

@GoVictorOps #ChatOps@ngrieb: hubot graphite load 1 min on serverABC

@GoVictorOps #ChatOps@jasonhand

@GoVictorOps #ChatOps

Getting Started

Install botjhand.ml/hubotjhand.ml/lita

Create repoDownload existing scripts

jhand.ml/scriptsCreate your own scriptsAsk others what needs to be automated

@jasonhand

@GoVictorOps #ChatOps

Concerns

@jasonhand

@GoVictorOps #ChatOps

Limitations

@jasonhand

@GoVictorOps #ChatOps

What I’d like to learn from you :

Are you doing ChatOps?

@jasonhand

@GoVictorOps #ChatOps

@GoVictorOps #ChatOps

Jason HandVictorOpsjason@victorops.com@jasonhand

www.chatops.me

top related