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.
4. What
do
you
do
over
and
over
again?
Can
I
do
that
for
you?
I’ll
think
about
it.
@jasonhand
#ChatOps
5. ChatOps
“puCng
tools
in
the
middle
of
the
conversaFon”
-‐
GitHub
(2010)
“everyone
is
pairing
all
of
the
Fme”
-‐
Jesse
Newland
(Ops
–
GitHub)
6. DevOps
Culture
AutomaFon
Measurement
Sharing
To
move
fast
and
maintain
stability
it’s
important
to
have
a
culture
of
automaFon,
measurement
and
sharing
@jasonhand
#ChatOps
13. MulF-‐user
terminal
Share
learning
experiences
Sharing
Disseminate
knowledge
across
everyone
on
the
team
Share
learning
experiences
@jasonhand
#ChatOps
16. Jason:
Hey
Dan
…
did
you
see
that
spike
in
CPU
usage
on
Prod1..
~
3
minutes
ago?
Dan:
No.
Let
me
check.
brb
Old
methods
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
17. Jason:
Hey
Dan.
My
code
is
ready
to
push
when
you
are.
Dan:
Old
methods
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
Fme,
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.
18. 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
Fme,
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
If
using
a
tradiFonal
chat
client
Such
as
Gchat
…
Who
else
can
see
this
conversaFon?
Nobody
!
@jasonhand
#ChatOps
19. What
do
you
do
over
and
over
again?
Can
I
do
that
for
you?
Heck
yeah!
:D
@jasonhand
#ChatOps
20. Examples
•
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
Fcket
• Adding
comments
and
changing
their
status
on
Fckets
• Query
the
status
of
API's
(internal
&
external)
• VM
interacFon
to
see
host
health
• Monitoring
service
interacFon
to
trigger
status
checks
• Hubot
scripts
can
be
wrinen
in
CoffeeScript
or
Javascript
• NoFfy
people
not
present
in
a
chatroom
that
they
were
menFoned
• 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
staFc
links,
mapping
those
links
to
simple,
easy
to
remember
commands
In
GitHub
Opening
issues
Closing
issues
CommenFng
on
issues
LisFng
issues
Merge
pull
requests
jhand.ml/scripts
jhand.ml/heroku
@jasonhand
#ChatOps
21. Example
script
Show
current
GitHub
status
and
messages
jhand.ml/script1
@jasonhand
#ChatOps
22. Jason:
hubot
github
status
hubot
github
status
-‐
Returns
the
current
system
status
and
Fmestamp.
hubot
github
status
last
-‐
Returns
the
last
human
communicaFon,
status,
and
Fmestamp.
hubot
github
status
messages
-‐
Returns
the
most
recent
human
communicaFons
with
status
and
Fmestamp.
Hubot:
github
status:
new
file:
Chatops.txt
116
seconds
ago
@jasonhand
#ChatOps
23. 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
Fme,
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
conversaFon?
Erybody
!
Members
Jason
Dan
Nick
Mike
Jeff
Doug
Tara
@jasonhand
#ChatOps
24. 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.
;-‐)
29. GeCng
Started
Install
bot
jhand.ml/installhubot
Create
repo
Download
exisFng
scripts
jhand.ml/scripts
Create
your
own
scripts
Ask
others
what
needs
to
be
automated
@jasonhand
#ChatOps