blog.bouzuya.net

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 でよいかと)