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に戻る

参考元サイト

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