JenkinsとはJenkinsとはJenkinsとは?Jenkinsとは、継続的インテグレーション(CI)/継続的デリバリー(CD)実現のためのツールJenkins(ジェンキンス)とは、継続的インテグレーション(CI)や継続的デリバリー(CD)を実現のためのツールです。Jenkinsは、「ソフトウェアのリリーススピードの向上」「開発プロセスの自動化」「開発コストの削減」といった利用目的として、注目がされているオープンソースのツールです。Solutionsをご紹介しております。継続的インテグレーション(CI)/継続的デリバリー(CD)を行えるツールはたくさんありますが、JenkinsはシェアNo.1のツールとなっています。大きな長所としては、汎用性が高いことと大きなコミュニティの存在です。Jenkinsは、汎用性が高く、基本的にJavaが動く環境であればLinuxでもWindowsでも動作させることができます。ビルドやテストに限らずどんなスクリプトでも実行できるので、ビルドプロセスに合わせてビルドからリリースまで柔軟に自動化が行うことができます。コミュニティが大きいことから、プラグインも豊富にあり、1400以上のプラグインを利用することができます。利用者が多いため、日本でも勉強会が開かれていたり、日本語の情報がすぐに手に入るのも広く使われている要因です。Jenkinsを利用する目的であるCI/CDとは継続的インテグレーション(CI)/継続的デリバリー(CD)とは、「ソフトウェアのリリーススピードの向上」を目的としたソフトウェア開発の手法で、頻繁にビルドやテストを実行することです。一般的には、コードがバージョン管理ツールにコミットされたタイミングで、ビルドプロセスやリリースプロセスを自動実行するように構成します。コミットされるたびに実行されるため、エラーがあればすぐにコミットした開発者にフィードバックされ、影響範囲の小さいうちにバグの発見と修正が可能となります。この手法を適用することで、ソフトウェアは常にリリースできる状態となり、自動でプロセスが実行されるため人手によるミスや、操作のばらつきのようなものがなくなります。継続的インテグレーション(CI)/継続的デリバリー(CD)の違いとはCIとCDの違いは、カバーするプロセスの範囲の違いとなります。コードレベルのテストまでを自動化するのがCIで、システムテストやデプロイなど、実行環境やリリースまで影響するような自動化を行うのがCDです。継続的インテグレーション(CI)/継続的デリバリー(CD)を行うことで品質の向上と開発の効率化を同時に達成し、リリーススピードの向上に繋がります。今日の変化の早い社会においては、システムやサービスも素早く変化が必要になっています。いった背景もあり、現在、継続的インテグレーション(CI)/継続的デリバリー(CD)の活用が広まっているのです。Jenkinsの役割とはJenkinsは、継続的インテグレーション(CI)/継続的デリバリー(CD)の目的がずれていると効果的に力を発揮できません。開発者が変更を行ったら、即座にビルド、テストを実行して、問題があればすぐにフィードバックする仕組みが必要になります。Jenkinsのエージェントは、いろいろな環境を準備しておき、プロジェクトに合わせて必要な環境に割り振ることで効果を発揮します。Jenkinsのよくある誤解Jenkinsのよくある誤解として、現在のビルドツールやテストツールを置き換えるものと考えられてしまうことがあります。Jenkinsの役割は、ビルドプロセスにあわせて、適切なツールを適切なタイミングで実行させることです。ビルドプロセスの各フェーズをシームレスに連携させ、結果を即座に通知することがJenkinsの役割となります。最初はJenkinsサーバー上に全てのツールを準備して実行することが多いかもしれませんが、プロジェクトの規模が大きくなったり、利用するプロジェクトの数が増えてくると、実行されるまでに待ちができたり、実行時間が長くなってしまう可能性があります。コードにエラーがあればすぐに通知するのが継続的インテグレーション(CI)/継続的デリバリー(CD)の基本なので、この状態の解消のためにJenkinsには分散ビルドの仕組みがあります。ビルド実行用のマシンをエージェントとして登録することができ、Jenkins本体はエージェントに対してマスターと呼びます。マスターは複数のエージェントに対してビルドの実行を割り振り、結果をまとめることに注力させ、基本的にはビルドの実行はマスター上では行わないことが推奨されています。OSS版Jenkinsの問題CIやCDの整備が進んでいくと、Jenkinsやビルド環境の負荷がそれに伴って大きくなります。複数のチームが頻繁なビルドを実行することで、ソフトウェアの生産性が向上する一方、Jenkinsやビルド環境にエラーが発生すると一気に開発効率が落ちてしまいます。安定した稼動のために、管理者や利用者に大幅な管理工数がかかったり、もしものために不要なPCリソースを準備しておいたりしないといけなくなります。Jenkinsを1チームでの利用であれば問題なかったのですが、規模の拡大により、Jenkinsの利用するチームが増えることで、ビジネスリスクが高まり、オープンソースでは組織的な運営の問題がでてきます。Coreをご紹介しております。Core組織的なJenkins運用を実現。Jenkinsの管理のしやすさとセキュリティを拡張するためのエンタープライズ機能をプラットフォーム管理者に提供します。SupportJenkinsスポンサーが提供するテクニカルサポートです。プラグインの互換性の確保と、Jenkinsエキスパートによるベストプラクティスを提供します。環境構築サービスCIツール「Jenkins」にテストツールや分析ツールを組み合わせた最適な開発環境の構築をご提案します。