GitHub社内のDevOpsを支えるツール「Boxen」と「Hubot」(前編)~DevOps Day Tokyo 2013

2013年10月2日

世界中でDevOpsのイベントとして行われている「DevOps Days」の東京版「DevOps Day Tokyo 2013」が9月28日に開催、海外から来日した多くのゲストスピーカーによるセッションが行われました。

GitHubのJohn Britton氏は「Ops for Everyone」(みんなの運用)という題で、GitHub社内で開発から運用までをデベロッパー自身が行うためのツール、BoxenとHubotの紹介と社内の利用例を解説しています。

Ops for Everyone

John Britton氏。

GitHubでエンジニアと教育の橋渡しをしています。

fig

私は以前、運用というのはあごひげを生やしたようなオタクがやるものだと思っていました。でもそれは間違っていました。

fig

その話をする前に、弊社の理念をお話しましょう。弊社のプロジェクトは、つねに社の理念を念頭において進めています。

GitHubの4つの理念

理念の1つめは「Collaboration」です。孤軍奮闘するよりもチームワークを重んじます。これは運用にも同じことがいえるでしょう。

fig

次は「Automation」。つまり同じ仕事は二度とやってはならないと考えています。雑務を減らす、ということです。

fig

「Experimentation」、実験です。そのために環境が新しいことを試しやすいようになっているべきです。

fig

「Distribut-ation?」、分散型であれ、ということ。誰か一人、あるいは少数の人だけが分かっているよりも、チーム全体で運用がわかっていれば、人為的な単一障害点をなくすことができます。

fig

この4つの理念をどう実装していくのか。2つのオープンソースプロジェクトについて話しましょう。どちらもGitHubで開発したものです。

理念をツールで実装する

1つは「Boxen」。デベロッパーのマシンを管理するためのツール。GitHubには200人近くの従業員がいますが、みんなこれを使ってコンフィグしています。

fig

もう1つは「Hubot」。Hubotはロボットで、チャットルームにいていろんな操作をチャットで実行できます。

fig

Boxenで開発環境を自動構成

まずは「Boxen」から。その目的は雑務を減らすことで、Boxenのおかげで入社した人でもビルド作業がその日からできるようになります。

一般に多くの会社で開発環境を整えるのには手間がかかり、1週間くらいかかってもおかしくありません。こんな大きなコストが、Boxenを採用することで省略できます。

fig

GitHubに入社した私は、初日に新しいMacbookをもらいました。そしてまずXcodeのコマンドラインツールをインストールします。これはアップルの規約上、マニュアルでのインストールが必要です。

fig

次に、curlコマンドをコピペしてターミナルから実行します。bashのスクリプトがダウンロードされて実行され、続いてGitHubのユーザー名などを入力すると、あとは待つだけです。

fig

通信速度にもよりますが、全部をダウンロードするのに速くて1時間。終了するとこんな環境が入っています。これでWebアプリケーションをローカルマシンでテストできるようになります。

fig

次は、プロジェクトを選択します。例えばGitHubを選択するときはこのコマンドです。あとはコーディングに取りかかればいい。

fig

Mac版のPuppetみたいなもの

Boxenはどう動いているのか、GitHubの依存関係をどうやって知るのでしょう。そのために、まずProject Manifestファイルがあります。

fig

Boxenはこうした依存関係をもとに、GitHubのプロジェクトをクローンしてくれます。中身はPuppetです。

それからみんなテキストエディタなどの好みがありますし、開発ニーズも違うかもしれないので、それらを記述するPersonal manifestファイルもあります。

つまりこれはMac版のPuppetみたいなものなのです。

fig

≫後編に続きます。後編ではデプロイや運用を支えているチャットのロボット、Hubotについて。

DevOps Day Tokyo 2013

DevOps Day Tokyo 2012

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : DevOps , GitHub



≫次の記事
GitHub社内のDevOpsを支えるツール「Boxen」と「Hubot」(後編)~DevOps Day Tokyo 2013
≪前の記事
運用を見える化することでDevOpsを前進させよう(後編)~DevOps Day Tokyo 2013

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus