2014-11-23 第 1 回 Hubot x ChatOps 勉強会 #hubot_chatops にいった & hubot-slideshare をつくった
『第1回 HubotxChatOps 勉強会』にいった。で、まとめた。
その前に、1 日 1 Hubot スクリプトの 133 日目の hubot-slideshare 。名前のとおり、slideshare の指定したユーザーのスライドをとってくる Hubot スクリプト。うん。
以下、まとめ。
『第1回 HubotxChatOps 勉強会』のふりかえり & 個人的に気になったところ
- イベントページは http://connpass.com/event/9370/
- 会場などはイベントページ参照。
- 主催者は堀内さん @hico_horiuchi
- 参加者は 25 人。
- 東京から来られた方も数人。
自分用メモ
- メールなど既存コミュニケーションツールとチャットとの比較が必要である。
- それぞれの特性の違いを考慮して、適材適所が良いのでは?
- Hubot には名前をはじめ、キャラ付けが必要である。
- 機械的なコマンドばかりは良くないのでは? (後述の共有ターミナルで良い)
- チャットは IRC からあまり進歩していないのでは? (要検討)
- 部屋・チャンネルというくくりだけでは限界があるのでは?
- フロー型のコンテンツであるという自覚に欠けているのでは?ストックをもっと考慮すべき。
- 次のチャットの出現が待たれる。
- Hubot の導入は、他のツールと同様に、上司の承認や、チームの文化に馴染むかなどの課題がある。
- チーム・組織の文化として「新しいもの試せるかどうか」は大きく左右されそう。
- 上司を説得するための XXX というあるあるネタが用意されていい。
- ChatOps とは
- チームには共有すべき「チームのアクション」がある (ブランチのマージ・ビルド・テスト・デプロイ・サーバーエラーの通知など)
- 「チームのアクション」を拾う場として、既にチームの共有の場である「チャット」が選ばれたもの
- Jenkins などの CI も「チームのアクション」を拾う場のひとつなので、ChatOps ( Hubot ) でやりたいことと部分的に被る
- コマンド(「チームのアクション」)を実行したいだけなら、もっとそれに特化した共有ターミナル的な仕組みとかあっていいのでは?(補完が効く、とか)
- チャットの機能拡張を BOT でやる必要はないのでは?
- チャットがその拡張点を持てば良い。
- チャットのログが流れ過ぎる。
- 各種通知・コマンド・雑談・コマンド結果などがすべて同じところに流れるとノイジー
- 別の場所に流してしまうと、今度は目につかなくなる
- うまくフィルタリングする機能が必要。
- うどんはすばらしい (スピーカー(香川以外)にうどんが配られるサービス)
以下、詳細とその読みかた
- カッコ書きは @bouzuya の意見。
- 資料を整理したわけではなく、資料を見つつ、話を思い出しての感想をメモ。
発表 1 堀内さん @hico_horiuchi
- 資料は http://www.slideshare.net/hico_horiuchi/chatops-41908217
- うどん県アピール
- メール→チャット
- (メールだってログは残るし、検索もできるし、 API も安定して存在する)
- (メールをはじめとした他のコミュニケーションツールとの比較が話題に上がらなかった)
- ChatOps はよくわからないが、とりあえず Hubot を使うことにした
- 定期的な「ペース早いですね」
- chatwork の API が不足していたので、Typetalk に移行
- Typetalk の招待機能を Hubot で追加
- 研究室での ChatOps 事例
- Hubot の名前は huboco
- (BOT にはキャラ付けが大事という説)
- 1 BOT で複数ルーム対応
- ( これが特殊なのかはちょっとよく分からない )
- GitHub / GitLab の更新通知
- Sensu のアラート通知
- coffeelint を使う
- (CoffeeScriptのための開発ツールが話題に上がらなかった)
- デモ
- 最初 hubot 動いていなくて huboco hello と呼び続ける堀内さん
- アニメ情報の表示、など
- HuboLabo の紹介
- コミュニティつくったよ
- http://hubo-labo.herokuapp.com
- デモが長引いて?最終的には時間をオーバーしていた
発表 2 草間さん @jacopen
- HDMI 対応できなくて順番変更
- 資料は http://www.slideshare.net/jacopen/cloudn-paaschatops
- 本業は Ingress (緑)
- Cloudn の PaaS は Cloud Foundry ベース
- ライバルは Heroku
- Hubot も動く
- 関係ないけど、 Software Design で Kubernetes
- (個人的にいま Docker 対応をしているので Kubernetes の話めちゃめちゃ聞きたい)
- IRC 推し。別に IRC でいいや。
- Slack はエンジニアの評判は良い
- (ぼくも既にあるチャットでいいと思う。IRC から根本的には進歩してないと思う)
- Hubot 以前から BOT を活用している
- Ruby の nadoka ベースの tamac さん
- (BOTには名前・キャラ付けが大事なのか)
- Hubot ( ueo ) と Jenkins プラグインとを併用
- CI 通知
- GitHub の更新通知
- チームのルールに従っているかをチェック
- 監視の情報通知
- 会議の進行役決めなどなど
- (結構、日本語でフレンドリーに話しているぽいのが印象的)
- エンジニアは社会人力低いので、それを助ける必要がある
- 食事補助券のもらい忘れやゴミ捨て忘れの防止、アニメ情報の表示(また!)
- 堅めの組織。だけど、たまたま ChatOps 導入しやすいチーム・文化だった
- ひとりでもはじめて、まわりを巻き込もう
- 許可を求めるな、(やってみて) 謝罪せよ
- (こういう組織内で入れられるかどうか、上司がどうか、みたいな話題はこれ系の勉強会だと定番なのかも)
- (組織の文化として、試していけるか、ってのは変えるの難しいと思う。経験談。)
- ChatOps をやるための条件
- チームにコミュニケーション手段が定着
- 新たな仕組みを試せる環境と文化
- 試行錯誤できるスキルと適正
- チャットから操作できる程度に、運用が自動化されている
- ChatOps を自然にやれる = 良いチームができている
- (このへん、資料からまんま引用だけど、良い話)
発表 3 @bouzuya
- 資料は https://speakerdeck.com/bouzuya/hubot-x-chatops-number-1-2014-11-22
- 坊主だから bouzuya
- Hubot スクリプトをたくさん書くとマークされ HubotxChatOps に呼ばれる
- たくさん = 130 個
- Hubot だけがリポジトリへの write 権限(マージ権限) を持っている
- 1 日 1 Hubot スクリプト
- Hubot はだいたいのことができる
- Hubot はチャット以上の UI をつくることができない (チャット側の制約)
- Hubot は ChatOps できる
- ChatOps には Hubot はたぶん要らない
- そもそも Chat で Ops すべきかは疑問
- ひとりチャットで Hubot せずに、チャット内蔵アダプターで Hubot しよう
- bouzuya/hubot-b
- あきらめよう ChatOps
- キミだけの Hubot をつくろう!!!!
発表 4 佐々木さん @sasakipochi
- 資料は ???
- メモとってないんで以下覚えている範囲で適当
- Ingress (青)
- 流行語がちりばめられたスライド
- いろいろ試してるけど IRC
- IRC はクライアントに困る。文字化けなどなど。
- (資料あがったら追記する、たぶん)
LT 1 森理さん @moririring
- 資料は http://www.slideshare.net/moririring/ci-log-mail-chat
- CI 自作
- CI は、チーム内での(ビルドなどの)結果の共有に意味がある
- メールを投げる→見られない
- アクセスカウンター設置→効果が分かる
- 無視されるエラー→ノイズになるメール
- ノイズを減らすために通知をフィルタリング
- 通知の頻度を減らす (まとめて送るなど)
- 通知の対象者を減らす
- (極端な例は @hico_horiuchi さんの話であった、Hubot との二人部屋)
- 「続きは Web で」
- メールよりチャットのほうが見てもらえる
- リアルタイムに見てもらえる & 見過ごされやすい
- 勉強会駆動勉強
- メッセージに顔文字などを入れると良い
- (BOT へのキャラ付けの話題)
LT 2 山口さん @ken880guchi
- 資料は https://speakerdeck.com/ken880guchi/hubotxchatopsmian-qiang-hui
- メモとってないんで以下覚えている範囲で適当
- PHPer
- (会場の PHP への異常な冷たさが笑える)
- Slack に情報共有用のチャンネルを設置し、Hubot で Qiita API を呼び出し情報を流す
- CoffeeScript つらいので JavaScript で Hubot スクリプト書く
- (CoffeeScript はバージョン古い 1.6.3 がデフォルトなので、JavaScript でよいかと)