こんにちは、ShareWisの濱田です。
社内のチャット(Slack)にHubotを導入してから約半年が経ちました。半年間Hubotを運用、メンテナンスしてきて感じたことをお話します。
Hubotにやってもらっていること
主にHubotにやってもらっていることは以下です。
- Asanaのミーティング用タスクを作ってチャットでミーティングを告知
- 運営サービスで購入が発生したら知らせてくれる
- 運営しているサービスのCron(定期処理)が失敗時に知らせてくれる
- 運営サービスがダウンしていたら特定メンバーに通知を送る
- 運営サービスの毎日のアクセス数を教えてくれる
HubotはChatOpsの要として今流行っていますが、HTTPのリクエストを絡めた処理ができるのが便利です。
Hubotに対してHTTPでPOSTするとチャットに投稿したり、逆にHubotが外部サービスにHTTPリクエストを送ることができます。
この仕組によりWeb APIが絡んだ定型作業はHubotにやってもらうことができます。
上記の2と3については運営サービスで何かが起こるとHubotにHTTPリクエストを送り、それをHubotが教えてくれます。4についてはサーバーの死活監視をNewRelicで行い、何か起こるとチャットに通知されるようにしています。このNewRelicからの投稿をHubotが監視し、サイトダウンに関する投稿なら特定のメンバーにチャット上でメンションを飛ばすようにしています。
5については毎日、HubotがGoogle Analytics APIにアクセスし、ShareWisのPVを教えてくれます。
Hubotの効能
Hubotを運用してみての利点は大きく言えば「様々な情報をチャットに集約できる」の一点に尽きます。
上記のような仕組みを作ることによって、これまでサイトの管理画面やGoogle Analyticsにアクセスしないと分からなかった情報をチャットにまとめることができます。
運用が楽になるのはもちろんのこと、全員が情報をキャッチしやすくなります。
Hubotを使えば特定の情報を特定の人にメンションを送ることも可能ですので、重要度のコントロールも簡単にできます。
Hubotをメンテしてみて感じたこと
約半年ほどHubotのコード(Node.js)を書いてみて思ったのは、思ったより簡単という印象でした。Node.jsは初めてでしたが、npmによって大抵の機能はまかなうことができます。
Hubotで必要な処理は定期処理や正規表現によるテキストの加工、日時やJSONのパース、HTTPリクエストなど決まりきったコードになりますので、いくつかスクリプトを書けばそれを使いまわせます。
その他チャットで共有している情報
ShareWisのチャットでは上記のようにHubotを絡めた通知以外にも、以下のような情報をチャットに流しています。
- 社内ドキュメントの作成、更新情報
- コードの配備スタート/完了と、その配備内容
- ShareWisのブログが更新されたら通知
- Asanaでタスクが作られたら通知
このようにShareWisでは何かアクションが起こるとチャットにゆるく通知しておくのが根付いています。
(濱田)
コメント