Jenkinsとは


Jenkinsとは?

Jenkins

Jenkinsとは、継続的インテグレーション(CI)/継続的デリバリー(CD)実現のためのツール

Jenkins(ジェンキンス)とは、継続的インテグレーション(CI)や継続的デリバリー(CD)を実現のためのツールです。
Jenkinsは、「ソフトウェアのリリーススピードの向上」「開発プロセスの自動化」「開発コストの削減」といった利用目的として、注目がされているオープンソースのツールです。
テクマトリックスでは、組織的にJenkinsを利用するためのCloudBees Jenkins Solutionsをご紹介しております。

Jenkinsの特長

継続的インテグレーション(CI)/継続的デリバリー(CD)を行えるツールはたくさんありますが、JenkinsはシェアNo.1のツールとなっています。大きな長所としては、汎用性が高いことと大きなコミュニティの存在です。
Jenkinsは、汎用性が高く、基本的にJavaが動く環境であればLinuxでもWindowsでも動作させることができます。また、ビルドやテストに限らずどんなスクリプトでも実行できるので、ビルドプロセスに合わせてビルドからリリースまで柔軟に自動化が行うことができます。

コミュニティが大きいことから、プラグインも豊富にあり、1400以上のプラグインを利用することができます。利用者が多いため、日本でも勉強会が開かれていたり、日本語の情報がすぐに手に入るのも広く使われている要因です。
Jenkinsコミュニティ | テクマトリックス株式会社

Jenkinsを利用する目的であるCI/CDとは

継続的インテグレーション(CI)/継続的デリバリー(CD)とは、「ソフトウェアのリリーススピードの向上」を目的としたソフトウェア開発の手法で、頻繁にビルドやテストを実行することです。
一般的には、コードがバージョン管理ツールにコミットされたタイミングで、ビルドプロセスやリリースプロセスを自動実行するように構成します。
コミットされるたびに実行されるため、エラーがあればすぐにコミットした開発者にフィードバックされ、影響範囲の小さいうちにバグの発見と修正が可能となります。
この手法を適用することで、ソフトウェアは常にリリースできる状態となり、自動でプロセスが実行されるため人手によるミスや、操作のばらつきのようなものがなくなります。

継続的インテグレーション(CI) | テクマトリックス株式会社

 

継続的インテグレーション(CI)/継続的デリバリー(CD)の違いとは

CIとCDの違いは、カバーするプロセスの範囲の違いとなります。コードレベルのテストまでを自動化するのがCIで、システムテストやデプロイなど、実行環境やリリースまで影響するような自動化を行うのがCDです。

継続的インテグレーション(CI)/継続的デリバリー(CD)の違い| テクマトリックス株式会社

継続的インテグレーション(CI)/継続的デリバリー(CD)を行うことで品質の向上と開発の効率化を同時に達成し、リリーススピードの向上に繋がります。
今日の変化の早い社会においては、システムやサービスも素早く変化が必要になっています。そういった背景もあり、現在、継続的インテグレーション(CI)/継続的デリバリー(CD)の活用が広まっているのです。

継続的インテグレーション(CI) | テクマトリックス株式会社

Jenkinsの役割とは

Jenkinsは、継続的インテグレーション(CI)/継続的デリバリー(CD)の目的がずれていると効果的に力を発揮できません。開発者が変更を行ったら、即座にビルド、テストを実行して、問題があればすぐにフィードバックする仕組みが必要になります。Jenkinsのエージェントは、いろいろな環境を準備しておき、プロジェクトに合わせて必要な環境に割り振ることで効果を発揮します。

Jenkinsの役割 | テクマトリックス株式会社

Jenkinsのよくある誤解

Jenkinsのよくある誤解として、現在のビルドツールやテストツールを置き換えるものと考えられてしまうことがあります。

Jenkinsの役割は、ビルドプロセスにあわせて、適切なツールを適切なタイミングで実行させることです。ビルドプロセスの各フェーズをシームレスに連携させ、結果を即座に通知することがJenkinsの役割となります。また、最初はJenkinsサーバー上に全てのツールを準備して実行することが多いかもしれませんが、プロジェクトの規模が大きくなったり、利用するプロジェクトの数が増えてくると、実行されるまでに待ちができたり、実行時間が長くなってしまう可能性があります。

コードにエラーがあればすぐに通知するのが継続的インテグレーション(CI)/継続的デリバリー(CD)の基本なので、この状態の解消のためにJenkinsには分散ビルドの仕組みがあります。ビルド実行用のマシンをエージェントとして登録することができ、Jenkins本体はエージェントに対してマスターと呼びます。マスターは複数のエージェントに対してビルドの実行を割り振り、結果をまとめることに注力させ、基本的にはビルドの実行はマスター上では行わないことが推奨されています。

 

OSS版Jenkinsの問題

CIやCDの整備が進んでいくと、Jenkinsやビルド環境の負荷がそれに伴って大きくなります。複数のチームが頻繁なビルドを実行することで、ソフトウェアの生産性が向上する一方、Jenkinsやビルド環境にエラーが発生すると一気に開発効率が落ちてしまいます。安定した稼動のために、管理者や利用者に大幅な管理工数がかかったり、もしものために不要なPCリソースを準備しておいたりしないといけなくなります。

Jenkinsの問題 | テクマトリックス株式会社

Jenkinsを1チームでの利用であれば問題なかったのですが、規模の拡大により、Jenkinsの利用するチームが増えることで、ビジネスリスクが高まり、オープンソースでは組織的な運営の問題がでてきます。

そこで・・・

組織的に利用するCloudBees Jenkins Solutionsで解決!!

テクマトリックスでは、組織的にJenkinsを利用するためのCloudBees Jenkins Solutionsをご紹介しております。
詳しくはこちら


お問い合わせ先

テクマトリックス株式会社
システムエンジニアリング事業部
ソフトウェアエンジニアリング営業部

CloudBees Jenkins