chat opsをはじめよう!

Post on 16-Apr-2017

518 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ChatOpsをはじめよう!おしゃべりbotから業務効率化botの開発例をご紹介!

自己紹介

酒葉真祐子

株式会社ビズリーチ

ビズリーチ事業部

インフラチーム所属

anpkt

以前もこんなイベントもやりました。

ChatOpsをはじめよう!

ChatOpsの使用例をご紹介

メリットありそう!

やってみよう!

ChatOpsとは

Chatでサービスやプログラムと連携することによる業務改善

余計なステップを減らして特定の個人や

エンジニアに依存させないオペレーション

つまりはチャットを通じて様々なオペレーション改善を

しちゃいましょうということ。

ChatOpsとは

ビルドやデプロイの管理

外部サービスとの中継

参照コマンドの発行

通知

リアル(ゴミ出し担当・目覚まし)

ChatOpsとは

共通インターフェース常に立ち上げているツールを使える。

ただしコマンドなどが増えると運用コストは結局増加しがち。

通知を受け取る・動作をするためのインターフェースが統一できる。

応答性チャットは常時利用している可能性が高い。

素早く通知などを検知して対応ができる 。

共有チーム内で何をやったかの可視化できる。

記録明示的に記録をするという手続きをしないでも作業記録が残る。

slack + hubotじゃなくてもいけます

チャットツールはChatworkやHipchatでもできます。

ボットツールも最近ではAWS Lambdaでもできます。

なんならBotをつくらなくても

チャットをつかってオペレーション改善すればChatOps。

チーム内ツィッターはじめました

こちらの真似をしてつぶやきChatOps。

http://qiita.com/m_mizutani/items/f7fa7b1d1c077b139f98

BizReachでのChatOps

Chatwork + Original Bot Slack + Hubot

導入の背景

自動化したい!というほんのりな意思な意思が集まった。

本格的にチャットボットを導入する気はない。

それぞれの書いた単発スクリプトを配置。

Chatwork + Original Bot

Chatwork + Original Botリリース管理シートの発行

TasksTasksTasksTasks

Chatwork + Original Botサーバの負荷状況・ビルド結果などをつぶやく

Chatwork + Original Bot定時のお知らせ

ミッション・ビジョンをつぶやく

インフラチームもこれにのっかるのか??

誰でもでも改善できるようにしたい。

使いたい人が自由に使えるようにしたい。

今まで可視化していなかったものも共有できるようにしたい。

Hubot + slackの導入

Hubotとは

GitHub によってつくられた Bot です。

CoffeeScript で書かれています。

OSS であり、HerokuやAWSなどの環境に簡単にデプロイできます。

デプロイをはじめとした タスクの自動化が可能。

独自のスクリプトも追加できます。

アダプター によって異なるチャットにも対応できます。

メジャーな機能のスクリプトは一通り揃っています。

公式サイト ( hubot.github.com )

hubot-scripts

うちのBotのご紹介

mobot(通称もぼさん)

マイペース

あんまり融通がきかない

ツンデレ(ツン多め)

成長期

みんなのために頑張っている

Mobot + Slack (Github)chat経由でdevelopからmasterへのPR作成。

マージ済みを一覧化してパッと見てわかるようにした

PRをわざわざ作成する手間が省けた

MobotのGithub連携

https://github.com/uiureo/github-pr-release

Mobot + Slack (Jenkins)チャット経由で特定のジョブのみを実行可能になりました。

再ビルドが簡単にできるようになりました。

ジョブの実行者の履歴もできました。

ただし、デプロイし放題はさすがに危ないのでまだ一部のみ。

MobotのJenkins連携

公式でサンプルが提供されています。

ただし、jenkins側でボットにどのジョブを実行させるかの権限設定が必要。

https://github.com/github/hubot-scripts/blob/master/src/scripts/jenkins.coffee

Mobot + Slack (JIRA)チケットの作成・更新が簡単になりました。

google spread sheetやgithubと連携すればリリース物の管理もより容易になる。

コマンド実行の可視化

ansible/terraformの実行プラットフォーム

チームのメンタルケア

課題点

セキュリティ面の向上

本番に向けてコマンド実行し放題は絶対さけたい

実装方針のバラ付き

ES6とcoffee scriptのバラ付き

コードが冗長になってしまう問題

モジュール化がたりない

よかったこと!

運用スピードアップ!

数行のコードやプラグインを活用することで業務が圧倒的に改善される。

単純作業・定型化されている業務は自動化するべき。

こころに余裕ができる

エラーをはかれても腹がたたない。

チームの雰囲気づくり

チームのコミュニケーションが活発になります。

オペレーションが楽しくなる!

今後もやりたいこと

複数の外部サービスを連携してもっと便利に

JIRA + SpreadSheet

Github + JIRA etc…

使えるひと、作れる人の拡大

開発チームとの連携

脱・属人化

DEMO

必要なもの

node.js

slackチーム

herokuアカウント

githubアカウント

※nodeがインストールされ、hubotが動く環境である前提です。

install hubot

hubot-scripts

hubotをインストールした時点でデフォルトで提供されます。

hubot-scripts.jsonに使いたいスクリプトを記載して初めて使えます。

今回はgithub-activity.coffeeを使用します。

Deploy to heroku

Connect to Slack

Connect to Github

※package.jsonにdate-utils/githubotを記載してください。

よくきくバッドノウハウ

通知部屋。そして誰も見なくなった・・・

周知不足

企画倒れ。何も始まらない。

http://qiita.com/kotatsu360/items/4fd049de3a9137981e6a

愛されるBotは開発が楽しくなる

ぶれないキャラ設定大事。

ほどよくふざけてみる。

会話のネタになるおしゃべりBotはチームからも愛される。

和む、なんか話しかけたくなると思ってもらえたら使ってもらえる。

変えたい業務フローを考える

本当に自動化する必要があるか。

共通に感じている課題なのか。

通知すべきメッセージの制御は大事。

仕様や手順の周知はしっかりすること。

初期から真面目に開発すること

何するスクリプトかよくわからんを防ぐ。

スクリプトを読んですぐわかる状態が理想。

ドキュメント化は大事だけど更新率が。。。

モジュール化も最初から進めていくとGood。

開発方針は始めに決めたい。

ご清聴ありがとうございました!

top related