Help us understand the problem. What is going on with this article?

Jenkins”だけ”でほんとうにできること

More than 1 year has passed since last update.

はじめに

グーグル先生に「Jenkinsとは」って聞いてみると、大体、

「継続的インテグレーションですごい!」
「自動化出来て効率アップ!」
「ビルド、テスト、デプロイまで自動で出来る!」

・・・という情報ばかりで、「実際使えるの?どうやって使うの?」って部分が見えてこないので、実際に使ってみようとした結果です。

インストールして、1日触ってわかったこと

「これ、ただのcronですやん・・・」

もう少し詳しく

色んなサイトで語られている「便利」を具体的に落とすと、

自動化出来る⇒〇
ビルド自動化⇒△
テスト自動化⇒△
評価自動化⇒×
デプロイ自動化⇒△

自動化出来る⇒〇 Jenkinsはいろんなトリガをもった便利なcron/タスクスケジューラみたいな感じで、外部連携も得意っぽいので(頑張れば)色々自動化できる。

↓こんな感じでcron風に定時起動させたり(定期的に実行)、他のジョブの後に実行するように設定してジョブ連携させたり(他プロジェクトの後にビルド)、ポーリング監視してソースコードの更新があったら動くように(SCMをポーリング)、とか設定できる
image.png

↓Jenkinsの中にシェルやバッチを書いて実行させることも出来る。AntやMavenの呼び出しもここから。
image.png



ビルド自動化⇒△ 基本的にant,MavenといったビルドツールをJenkinsが呼び出して自動化するという方法が主流(Jenkinsはただの実行トリガ)。makeファイルやコンパイルファイルを自前で作って、Jenkinsに設定した起動条件に当てはまれば自動実行する、というようなことをビルド自動化っていう風に言っているだけ(たとえば定時に実行する、ソースファイルに変更が入ったら実行する等)。


テスト自動化⇒△ JUnit等のテストツールをJenkinsが呼び出して自動化するという方法が主流(Jenkinsはただの実行トリガに過ぎない)。テストプログラムを自前で作って、Jenkinsに設定した起動条件に当てはまれば自動実行する、というようなことをテスト自動化っていう風に言っているだけ(たとえばビルドジョブが成功したら実行する、等)。


評価自動化⇒× Cobertura、Checkstyle、FindBugs、JavaNCSSなどの外部ツールを起動し、その結果を受け取ることはJenkinsで出来る。Jenkins本体に評価ツール等があるわけではない。

↓ジョブの実行結果を一覧で見るぐらいは出来る
image.png

↓ジョブの実行結果コマンドを見ることも出来はする
image.png



デプロイ自動化⇒△ コピーやムーブのコマンドを書いたバッチやシェルを、Jenkinsから起動すればデプロイ自動化を実施できる。って感じ。ただし、そのバッチやシェルは一から自前で作る必要あり。

※Jenkinsを便利に使うためにはいろんな外部ツールを入れないといけないので、基盤屋さんからすれば「なんでもかんでも入れんじゃねぇ!」って怒られるかなと思います。管理対象物が増えるので。

結論

「これ、ただのcronですやん・・・」(2回目)

もちろん、自動化するための設定を作ってしまえば、あとは簡単なGUI操作で何億回でもJenkinsが再実行して、その結果を連携してくれます。そこは超便利でコスト抑制になると思います。

ただし、あくまで自動実行までの大量のお膳立てを、ほぼ手作業で実施することが大前提になります。もちろん、そのお膳立て(+Jenkins側の実行設定)はヒトが管理するので、そこの属人化を避ける運用も考える必要があるかと。

なので、「何でもかんでも出来るすごいやつ」って考え方は早々に修正すべきと思います。思いました。(そうさせるウェブサイトが多すぎるのも問題ですかね)

参考:
Jenkins実践入門
http://gihyo.jp/book/2011/978-4-7741-4891-5

オープンソースの自動テストツール/Jenkinsとは
https://www.ossnews.jp/oss_info/Jenkins
↑こことかほんとひどい

Higemal
ド底辺SIer。会社で使う自分用カンペを作成中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away