イベント登録数4,342

QCon Tokyo 2013 GitHub にパワーを与えたもの

GitHubの中の人が使っているHubot、そしてChatOpsってなんだ?~QCon Tokyo 2013レポート
2013/6/12 TIS株式会社 天沼健仁  この数年間でGitHubを利用するようになった技術者は、どれくらいいるだろうか? 非常に速いスピードで成長するととともに「ソーシャルコーディング」という潮流を生み出し、いまやOSSの開発に欠かせない存在のGitHub。  本セッションでは、GitHub社に勤務しているJesse Newland(ジェシー・ニューランド)氏がGitHubを支える運用の取り組みについて、「ChatOps」というキーワードとともに語った。 GitHubにおける「ChatOps」という運用スタイル  「ChatOps」とは、「Hubot」を通じて共通の運用タスクを自動化するGitHub社の運用スタイルだ。「Hubot」はCampFireやIRCなどのチャットツール上で動くGitHub社製のシンプルなBotフレームワークで、対話的にタスクを実施できる。 HUBOT via kwout  セッションでは、Gitのバージョンアップを内部システム全体に適用したい場合を例に、Hubotの使い方を示した。  Gitのパッチを作成しブランチに対して適用すると、CIサーバでビルドが実施され、その結果を「janky」というJenkinsのAPIを通じてHubotが表示してくれる。実際にデプロイメントを行う際は、puppetのnoopオプションを付けて実施することで、今回の変更が副作用を与えないかチャット上で確認してから反映できる。  Hubotはリソース状態をグラフ表示するために「collectd」「graphite」をサポートしている。一挙に全てのターゲットに適用するのではなく、一部に処理を適用し、リソース状態をチャット上で確認してから徐々に全体に適用していくといった運用フローも実現可能だ。  Newland氏は、「シミュレーションを行うことで自信が持てる」と語った。これらの操作ではターミナルを触っておらず、全てチャット上で行っている。チャット上で運用することで、誰かに何かを伝えたり、コミュニケーションのための調整ごとが不要となる。運用自動化はあらかじめ運用処理を登録しておくことで可能となる。  Hubotは、Shellや「Heaven」(Ruby製Rails向けのデプロイ管理ツール「Capistrano」のレシピカタログ)「Janky」「GraphMe」などを組み合わせて作られており、JSON APIが対応していれば外部APIとの連携も可能だ。 なぜHubotが重要なのか  会話の中心に配置することにより、なにが起こっているかを全員がチャット上で見ることができ、参加初日のメンバーでも状況を共有できる。当然全員に通知する必要などない。  また、運用の実施方法などを質問された際に、チャット上で実際に行ってみせることができるという副次的な効果も生まれた。チャットで常に状況が共有されているため、「デプロイは進んでいるのか?」「その作業は私がやるべき?」「監視のアラートに誰か応答してる?」などの質問もなくなったという。  「このような会話ベースでの運用は分散環境における開発では重要であり、チャットでコンテキストを共有することで、どこにいてもオフィスと同じように生産的に作業できる」(Newland氏) Hubotによる運用の簡略化  Nagiosのステータス確認や監視のミュート、ミュートの解除などの処理は数回のクリックを必要とするが、ラッパーを作成することでチャット上で実施可能になる。インシデント管理ツールの「PagerDuty」での対応も同様に複数のステップを必要とするが、Hubotで簡略化できる。お風呂に入っているときや、ご飯を食べているときにはインシデントの電話に対応したくないが、これらがあるおかげでチームが対応してくれる。  Hubotはモバイルにも対応しており、モバイル端末からHubotに処理を依頼できる。これによりどんな場所にいても状況を把握でき、迅速に対応することが可能だ。  HubotはOSSとしてGitHub上に公開されている。興味がある方は実際に試してみてはいかがだろうか。 参考リンク「ChatOps at GitHub by Jesse Newland」 QCon Tokyo 2013レポート プログラムは完璧でなければならないが、人は完璧ではない FabLabがもたらすソフトウェア+ものづくりの新たな価値 GitHubの中の人が使っているHubot、そしてChatOpsってなんだ? DDDが廻らない? スクラムが廻らない? それ2つ一緒にやれば廻るよ 大人気のログ収集ツールfluentdとは? そして、トレジャーデータやクックパッド、NHN Japanはどう使っているのか? HTML5と情報表現の最適化 WebRTCで変わるWebの未来 HTML5でできる多彩なビジュアライゼーション 「イベントカレンダー+ログ」レポート投稿募集中!このレポート記事が掲載されている本サービス「イベントカレンダー+ログ」では、イベント登録者がレポートを投稿したり、資料を一覧できるまとめページを作成できます。新着レポートは一覧に表示され、こちらのRSSにも配信されるので、ぜひご活用ください。