JenkinsとCircleCIを比較

    「Jenkins」と「CircleCI」の比較

    「Jenkins」と「CircleCI」は、継続的インテグレーション機能を提供します。

    「Jenkins」はツールとして利用でき、「CircleCI」はWebサービスとして利用できます。

    「Jenkins」

    概要

    Jenkinsは「継続的なソフトウェアのビルド/テストを行う機能」と「外部で起動するジョブ実行の監視機能」を提供します。

    多くのユーザーが使用しています。

    メリット

    ・旧バージョンも管理できる
    ・情報が得やすい(ユーザー数が多くコミュニティが活発)
    ・どのようなスクリプトにも対応できる高い汎用性
    ・豊富なプラグインによる優れた拡張性
    ・対応言語の多さ

    デメリット

    ・Jenkins用サーバを構築する必要がある
    ・属人的になりやすい(Jenkins職人)

    「CircleCI」

    概要

    「CircleCI」は、「Jenkins」と同様な機能を提供し、ビルド/テスト/デプロイなどについて自動実行できるサービスです。

    「CircleCI」はWebサービスであるため、登録するだけで使えるようになります。

    近年、Jenkinsを代替できるサービスとして人気を集めています。

    メリット

    ・サーバサイドだけではなく、iOSやAndroidでもCIできる
    ・テスト/ビルドなどについてパラレル稼働できる(処理が早い)
    ・設定ファイル「circle.yml」だけでビルド制御をすべて完結できる
    ・学習コストが低い
    ・設定ファイルはリポジトリに配置されバージョン管理できる
    ・GitHub・BitBucketと連携
    ・SSH接続も可能

    デメリット

    ・クラウドサービスであるため課金制(制限下での無料利用は可能)
    ・任意のタイミングでのジョブ実行ができない

    参考元サイト

    「Jenkins」基本情報

    ■概要

    Jenkins(ジェンキンス)とは、オープンソース継続的インテグレーション支援ツールです。ソフトウェア開発プロジェクトなどにおける「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援します。

    ■「継続的インテグレーション」とは

    継続的インテグレーション(CI:Continuous Integration)とは、バージョン管理ツールにコミットされたソースコードを定期的に自動ビルドすることにより、問題を早期に発見し対処を行うことです。

    その結果、ソースコード品質の向上、テスト工数の削減といった効果が得られます。

    ■基本説明

    Jenkinsの主要機能は、「継続的なソフトウェアのビルド/テストを行う機能」と「外部で起動するジョブ実行の監視機能」です。

    Javaで開発されたWebベースのソフトウェアで、Webサイトから管理/設定変更/レポート閲覧ができます。

    ■Jenkinsを使った開発の流れ

    開発メンバーがソースコードをコミットすると、Jenkinsが更新を検知し、ビルドツールをキックします。あらかじめ設定しておいた手順に従って、ビルド/テストが実行されます。ビルド/テストが完了したら、Jenkinsは、Webページやメールなどに結果を出力します。

    エラー箇所について、開発メンバーが修正を行い、ビルド/テストを繰り返して、エラーがゼロになるまで繰り返せば、手順書レベルの品質をクリアできていることになります。

    ■経緯

    Jenkinsは、Oracle社主導で開発されていた「Hudson」と呼ばれるソフトウェアがベースとなっています。

    2011年に、オープンソースプロジェクトとして分岐(フォーク)し、Jenkinsとしての開発が始まりました。

    主な開発者の一人として、川口耕介氏がおり、2011年、このプロジェクトにおける自身の働きを讃えられ「Google–O'Reilly Open Source Award」を受賞しています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Jenkins

    ライセンス情報

    Jenkinsのライセンスは「MIT License」です。

    詳細について、こちらを参照ください。
    →Jenkins →License

    ダウンロード

    →Jenkins →Download

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Concourse CI」など。

    「Jenkins」の主な特徴

    ■非常に高い汎用性

    Linux/Windows/Macなど、どの環境でも、さまざまな種類/言語のスクリプトを実行できます。

    ■多様なトリガー

    「バージョン管理システムのコミット」「cronライクのメカニズムによるスケジューリング」「他のビルドが完了した時」「特定のビルドURLによるリクエスト」などさまざまなトリガーで実行させることができます。

    ■プラグインによる拡張性

    Jenkinsは、プラグインを作成/利用することで機能を拡張できます。プラグインが充実している点も特徴です。

    ■簡易なインストール

    「java -jar jenkins.war」を実行するか、サーブレットコンテナにデプロイするだけで、インストールできます。データベースは不要です。

    ■インターフェース

    分かりやすいWebGUIを使用してJenkinsの設定を行えます。

    ■永続リンク生成

    「最新ビルド」「最新安定ビルド」のような永続(固定)的なクリーンでわかりやすいURLを持ちます。

    「Jenkins」の主な機能

    ■バージョン管理システム連携機能

    バージョン管理システムと連携し、自動的にプロジェクトを構成するソースコードを集め、コンパイルして実行可能な状態にビルドします。

    「CVS」「Subversion」「Git」「Mercurial」「Perforce」「Clearcase」など多くのバージョン管理システムに対応しています。

    バージョン管理システムからビルドへの変更の一覧を生成できます。

    ■分散ビルド機能

    複数のコンピュータで分散ビルド/テストを実行できます。

    ■ユニットテスト機能

    非常に簡単な設定でユニットテストを実行させることができます。

    JUnitのテスト結果を一覧表示/要約で履歴情報とともに表示します。履歴の傾向はグラフ化されます。

    ■タグ管理機能

    ビルド単位でタグをセットできます。

    ■ファイル追跡機能

    「どのビルドがどのjarを生成したのか」「どのビルドがjarのどのバージョンを使用しているのか」などを追跡できます。


    「CircleCI」基本情報

    概要

    CircleCIとは、継続的インテグレーション(デリバリー)サービスです。コミットからデプロイまでのパイプラインを作成し、継続的な統合/配信を使用してソフトウェア開発プロセスを自動化できます。

    基本データ

    プラットフォーム クラウドサービス
    クラウドサービス名 CircleCI
    読み方 サークル シーアイ
    略称 ---

    基本説明

    「CircleCI」は、継続的インテグレーションツール「Jenkins」と同様な機能を提供し、ビルド/テスト/デプロイなどについて自動実行できるサービスです。

    「Jenkins」は自前でサーバを立てる必要がありますが、「CircleCI」はWebサービスであるため、登録するだけで使えるようになります。

    GitHubなどのリポジトリサービスと連携させることで、「①リモートリポジトリにPush→②テスト実行→③成功したらデプロイ」という手順を実現できます。

    主な機能

    テスト

    CircleCIは、クリーンコンテナ/仮想マシンでビルドを自動的にテストします。

    「Seleniumなどによるブラウザ動作テスト」のようなUIテストなどを実行できます。

    ビルド

    「Android/iOSアプリのビルド」「Electronアプリのビルド」「Go言語のクロスコンパイル」などのビルドを実行します。

    配布

    GitHubなどのリポジトリサービスを使用して配布を行います。

    デプロイ

    アプリケーション実行プラットフォーム「heroku」などに対してデプロイを行います。

    ドキュメント作成

    コードから自動生成できる範囲のドキュメントを生成します。

    TOPに戻る

    主な特徴

    バージョン管理システムとの統合

    CircleCIは、GitHub/GitHub Enterprise/Bitbucketと統合されており、Pushのタイミングでビルドを作成します。

    そのため、「任意のタイミング実行」には向いていません。

    ビルド制御設定ファイル「circle.yml」

    CircleCIでは、設定ファイル「circle.yml」にビルド制御を記述し、リポジトリのルートに配置します。

    ジョブの実行(テスト/ビルド/デプロイなど)の実行方法を定義し記述しておくことにより、規定のタイミングで実行されます。

    Jenkinsとは異なり「この設定ファイルのみですべて完結できる」点が特徴です。

    コンテナベース

    CircleCIは、コンテナの中でテスト/ビルド/デプロイを行います。

    コンテナを増やすほど並列実行され速度を上げることが可能です。

    また、コンテナに対してSSH接続を行えます。

    ビジュアルダッシュボード

    CircleCIには、インタラクティブなビジュアルダッシュボードが用意されています。

    CircleCI上のすべてのビルドを確認でき、ビューのカスタマイズも行えます。

    ホスティングオプション(クラウドorオンプレミス)

    CircleCIは、「クラウド版」と「オンプレミス版」のホスティングオプションを選択できます。

    クラウドサービス版
    機能リリースへの即時アクセスと自動アップグレードにより、保守作業が軽減されます。

    オンプレミス版
    オンプレミスのプライベートサーバにCircleCIをインストールし、プライベートインフラストラクチャのファイアウォールの内側でCircleCIを実行できます。

    サービス連携

    CircleCIは、多くのサービスやツールとの連携が可能です。
    ・リポジトリサービス
    ・クラウドサービス
    ・テストツール
    ・デプロイツール
    ・通知ツール(Slack) など

    TOPに戻る

    同様サービス

    同様な製品として、次のようなものがあります。

    Jenkins」など

    TOPに戻る

    オフィシャルサイト

    オフィシャルサイト
    →CircleCI

    料金情報
    →CircleCI →Pricing

    導入事例
    →CircleCI →Case Studies

    TOPに戻る

    参考元サイト

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。