【3分でわかる!】『JenkinsとCI(継続的インテグレーション)』〜書籍Jenkins実践入門より〜
読み終えるまで約3分⏰
どうも、ちゃんなるです。 最近仕事でJenkinsに触ることになりました🙋♂️ ただ、さっぱりよくわからないので、これを機に勉強を始めることにしました👍
今回参考にしたのはこの書籍です。
『Jenkins実践入門』
Jenkinsとは
Jenkinsは、継続的インテグレーション(CI)を効率的に行うためのツールです。インテグレーションテストを継続的に、かつ自動的に実行するための土台のことで、開発者の手作業を大幅に削減できるもののようです。
公式サイト*1を読んでみようと思いましたが、英語と中国語しかありませんでした(日本語ですら怪しいのに…笑)。
オープンソースなので、無料で利用できますし、誰でも開発に携わることができます。ソースコード*2はGitHub上にあるので気になる方は覗いてみてください。
継続的インテグレーションとは
CI(Continuous Integration)は、毎日何度も継続的にビルドを実行する仕組みのことです。 ソフトウェア開発の品質と生産性を向上させることが目的で、短いサイクルでビルドしてその結果を開発者にフィードバックすることにより、ソフトウェアのインテグレーション時に発生する様々な問題の早期発見・早期解決を目指すのです。
ビルド
ビルドは、コンパイルやテストなどを実行し、「正しく」動作するソフトウェアやアプリケーションを生成する一連のプロセスのことです。手作業で行われたり、シェルスクリプトやビルドツールなどで一部自動化されていたりします。しかし、手作業ではミスをしたり作業が属人化したり、スクリプトでも特定の環境でしか同じ結果にならないなどの問題が生じます。
CIではこのような問題を一挙に解決できます。
CI活用の大まかな流れ
CIは下記の2〜5を自動化します。なんとなく便利なイメージがつくでしょうか?
- 開発者がソースコードの修正をコミットし、ローカル環境で動作確認をして問題がなければリモートリポジトリに変更をプッシュする
- リモートリポジトリの変更を検知し、ビルドが実行される
- ビルド結果(成功/失敗)を開発者にフィードバックする(メールやRSS、Slackなどのツールと連携する場合もある)
- ビルド結果のレポートを作成する
- ビルドが成功している場合、デプロイする
結果のレポートには、ビルド自体や内部で行っているユニットテストやE2Eテストなどの成否、それにかかった時間などを載せる運用が多いでしょう。後からレポートを振り返ることで様々な分析ができるのもメリットですね。
あらゆることが自動化されることで、開発者の作業が大幅に削減できます。ソースコードの修正を起点にデプロイまでが完了し、開発当事者だけでなく他の開発者やプロデューサに修正したソフトウェア・アプリケーションを共有することが容易になります。
Jenkinsの歴史を少し
- 2004年、Hudsonという名前で、当時Sun Microsystemsで川口耕介氏(Jenkins生みの親)の個人的なプロジュエクトとしてスタート
- 2008年、同社からサポートが提供され始める→同年、JavaOne Duke’s Choice Arardsを受賞して、CIのデファクトスタンダードへ
- 2010年、同社がOracleに買収され、川口さんもOracleを去る→OracleがHudsonという名称を商標登録する問題が発生
- 2011年、Hudsonプロジェクトからフォークされ、名称を変更したものが現在のJenkins
- 2013年段階で、Linuxカーネルの半分弱に及ぶコミット数👏
- 2015年にアクティブユーザが10万人超え👏
- 2016年にJenkins 2.0リリース→同年、Jenkins Certification*3という認定制度が開始🔥
- 現在に続く…
まとめ
Jenkinsは、CIを効率的に行うための土台を提供しているツールです。 オープンソースであり、その中でも活発に開発活動が続けられているプロジェクトの一つです。
無料で利用できるので、興味のある方は使ってみてはどうでしょうか?私もこれから実際に自分のPCにインストールし、手を動かしながら学習していきます🔥
書籍情報
Jenkins実践入門改訂第3版 ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plusシリーズ) [ 川口耕介 ] 価格:3,278円 |
[改訂第3版]Jenkins実践入門 ーービルド・テスト・デプロイを自動化する技術【電子書籍】[ 川口耕介【監修】 ] 価格:3,278円 |