社内CIハンズオンセミナーの参加報告&まとめ
jenkinsを利用した経験はあるのですが、構築、運用した経験が無かったので
社内でCI(jenkins)のハンズオンセミナーを受けてきました。
内容は、
- 継続的インテグレーション(CI)とは
- jenkinsとは
- jenkinsのインストールと設定(設定済のPCがあったので割愛)
- JOBの作成
- JOBのモニタリング
- jenkinsの拡張、プラグインの活用
- 構成管理ツールとの連携
- jenkinsベストプラクティス
って感じでした。
1.継続的インテグレーション(CI)とは
継続的インテグレーションとはなにか、行うために必要なもの、"こんな感じ"という概念図を見せての説明。
2.jenkinsとは
jenkinsとはどんなツールなのかというお話。
CIツールは色々あると思いますが、今はjenkinsですかね。
他のCIツールを利用して比較したことが無いので何とも言えないのですが、
コンセプトとしてある"Easy to use"は間違い無いと思います。
GUIで色々な設定ができますし、JOBの作成もお手軽。
プラグインもかなり豊富で、”こんなことやりたい”と思ったらプラグインを調べたら大体ありそうな感じです。
3. jenkinsのインストールと設定(設定済のPCがあったので割愛)
割愛。
4.JOBの作成
5.JOBのモニタリング
6.jenkinsの拡張、プラグインの活用
JOBの作成についての説明を一通りした後、実際にハンズオンでJOBを作成しました。
まず、フリースタイルJOBの作成。
JavaのサンプルアプリケーションをSVNから取得、ビルドしwarを作成しました。
次にmavenで同様のJOB作成。
その後は応用で、テスト結果レポートの生成や静的検査結果レポートの生成、コードカバレッジレポートの生成を行いました。
静的検査はVaiolation pluginを利用。
レポート作成はメモリを多く消費するので、JVMオプションを指定すること。
-DMAVEN_OPTS=-Xmx1024m
テストをスキップしたい場合は、以下を指定。
-Dmaven.test.skip=true
こんな感じ↓のレポートもプラグインを入れれば簡単に作れるし、便利ですね。
Deploy Pluginを利用してアプリケーションサーバーへのデプロイも行いました。
どのプラクティスも実PJで利用している/利用したいものばかりで参考になりました。
7. 構成管理ツールとの連携
ここはあまり時間がなかったので軽くしか話されなかったですが、今のPJはSVNとRedmineを利用しているので連携を取る様な設定を取り入れたいですね。
8.jenkinsベストプラクティス
講師の方が、実際にPJで導入しているプラクティスの紹介でした。
DBAプラグインを利用したER図からDDL作成、実行。static変数検出プラグインの紹介、コードの自動生成など興味深いプラクティスがいっぱいでした。
まとめ
CIってナニ?って人も、半日で概要の理解と、jenkinsさんと顔見知りになれる素敵なセミナーでした。
意外とCOBOLERな方々も来ていたのが興味深かったです。
どの言語を使っていても、自動化は取り入れたいプラクティスですよね。
自分自身は、今回のセミナーを通じてJOBの作成方法であったり便利な使い方を学べたので、PJにどんどん取り入れたいと思います。
特に、デプロイの自動化と受け入れテスト(selenium使いたい)の自動化がPJのキモになりそうなので注力していきます。
ちょっと特殊なアーキテクチャなので、デプロイの自動化には苦労しそうですが…
いつも思うのですが、ツールはインストール、導入して終わりではなく、効果のある運用を続けなければいけないと思います。
jenkinsを利用して日々の作業の自動化をするのはもちろんですが、それによって、頻繁にテストやデプロイが行われる、行いやすい雰囲気を作っていくことが重要です。
その想いや、意図を伝えるのも大事ですね。(色々自戒の意味を込めて)
また、せっかく優れたレポート機能があるので、品質や作業不可の見える化も工夫していこうと思います。
マネージャーに「とりあえずビルドの自動化が出来るツールなんでしょ?」なんて言われないようにしましょう!
こんなつぶやき↓をしましたが、早くjenkinsさんと顔見知りから脱却して、色々なことをやってもらえるようになりたいです。
これからCIについての社内勉強会。jenkinsさんとお友達になりたい。
— 天沼健仁さん (@tenten0213) 2月 29, 2012
少しjenkinsさんと仲良くなれた気がする。
— 天沼健仁さん (@tenten0213) 2月 29, 2012