はじめに
2月22日に行われた「続・CI超入門 〜 Jenkinsのススメ2 CI導入の壁を越えろ 〜」に行ってきました。
- 日時: 2012/2/22 19:00-21:00
- 場所: 株式会社 豆蔵 トレーニングルーム
- ハッシュタグ: #jenkins_night
- こくちーず: http://kokucheese.com/event/index/18660/
- Togetter: http://togetter.com/li/262267
- Ustream: http://www.ustream.tv/recorded/20618625
Jenkinsの導入 (CloudBees, Inc. 川口 耕介さん)
CIやJenkinsを導入するにあたってのお話でした。
デモで出てきたTest Driveを使えば、手軽にJenkinsを試せそうです。
継続的インテグレーション(CI)の発想
- ビルドを頻繁に実行しよう
- テストを頻繁に実行しよう
- 問題が発生したらときすぐに発見できるようにしよう
CIとは
- 命綱
- 常にチェックできるので、リファクタリングなどをやるリスクが取れる
- 火災報知機
- 問題があったらすぐにわかる
- 普段ちゃんと動いていることが前提(「警報鳴ってるけど、いつものことだからいいよ」って感じになってしまう)。問題が見つかったらすぐに直すことが必要。
CIするのにあるとよいもの
- バージョン管理システム
- 誰の変更で壊れたのかわかるようにするため
- 自動化されたビルドスクリプト
- ビルドがない言語の場合は品質検査で代用
- 自動化されたテストスクリプト
デモ
- Java Web StartでJenkinsを手軽に実行できる「Test Drive」
- https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins の「Test Drive」の「Launch」ボタンをクリック
- ダウンロードした jenkins.jnlp ファイルをJava Web Startで実行*1
- http://localhost:8080/ にアクセスするとダッシュボードが表示される
- ジョブを作る
- 新規ジョブ作成 > ジョブ名を入れて選ぶ(フリースタイルがおすすめ)
- ジョブとは?
- 基本的にはソフトウェアのビルドを模している
- ビルドするのにどんな条件・ツールなのかがわかるのも利点の1つ。ログを見るのを手助けする役割もある。
- テストを実行して失敗すると、どのコミットのせいなのか、とかそのときのエラーメッセージ、スタックトレースも表示される
Jenkins + EC2で分散ビルド (Sky株式会社 玉川 竜司さん)
ビルドは負荷の変動が激しい作業のため、Amazon EC2上で動かしてしまおうというお話でした。
Amazon EC2でJenkinsを動かす話
- ビルドは負荷の変動が激しい(リリース前は高負荷、とか)
- Amazon EC2ならピークにあわせてハードウェアを用意しなくていい!!
- EC2で勝手にスレーブを動的に増減してくれる
- 1時間ごとの従量課金
- セキュリティは大丈夫?→Amazon Virtual Private Cloud(VPC)やDirect Connectで対応
LT(1): Startup Jenkins! 〜CIから始めないJenkins入門〜 (@kanu_さん)
JenkinsはCIだけでなく、高機能なcronとしても使えるというお話でした。その発想はなかった!
紹介されていたTracLightningを使えば導入も非常に簡単にできそうです。
Startup jenkins!
View more presentations from Kanu orz
CIできてないとJenkinsに入門できない?→否!
- 高機能cronとして使える
- Windowsのタスクがイケてない→そうだ、Jenkinsを使おう!
- スケジュールとかログとかの管理も楽だし実行結果とかもWeb UIから見れる。処理が終わったらメール送信も可能。
TrachLightningを使えば5分で導入完了
- JenkinsやらTracやら必要なものがひと通り揃っている
- Jenkinsのビルドサンプルもたくさん付属
LT(2): <すいませんタイトル忘れました> (@cactusmanさん)
Jenkinsをどうやって社内に導入するか、というお話でした。
様々な工夫がありましたが、最終手段は「会社を変える」だそうですw
構想編
- コストをかけない
- ダメならすぐ撤退
- 何がしたいかを決めておく
- テストがしたいのか、常にリリースできる状態を保ちたいのか
サーバ編
- 空いているサーバを確保
- どっかに寄生
- 上司を説得するには実際に動くものを見せるのが効果的
- グラフとか。マネージャの人はそういうの大好きなので。
ビルド編
- ビルドスクリプトは書きましょう
- 静的解析ツールを動かすのに使うのもアリ
通知編
- まずは自分だけ
- いきなり失敗してるのがみんなに通知されると、何事か!?となるので
- 安定してきたらみんなが見る場所へ
まとめ
Jenkinsを簡単に試せるTest DriveやTracLightningのことを知ることができたり、Jenkinsを定期実行ジョブや静的解析ツールを動かすために使うというアイディアなど、いろいろ学ぶことができました。
そんなわけで、早速Jenkinsをインストールしていろいろ試してみようと思います。