ソフトウェア開発において広く浸透しつつある、開発から運用までの一連のプロセスをスムーズにすることを目指すDevOpsという仕組みや、顧客のニーズに迅速に応えることを目的としたアジャイル開発といった手法。これらを実現するための1つの重要な要素としてCI/CDがあります。CI/CDとは、ビルドやテストといった、リリースまでに必要な準備を自動化し、開発効率を高める手法です。
CI/CDツールはいくつか選択肢がありますが、今回はクラウドベースのCircleCIというツールについてご紹介していきます。CircleCIの基本情報やよく比較されるJenkinsやGitHub Actionsとの違い、最後に料金体系まで詳しく解説していきます。CI/CDツールの導入を検討されている方はぜひご参考ください。
目次
1. そもそもCI/CDって何?概要とその目的
CI/CDは、継続的インテグレーション(CI)と継続的デリバリー/デプロイメント(CD)という2つの概念を合わせた言葉です。
継続的インテグレーション(CI)とは、開発者が変更したソースコードを、同じプロジェクトのメンバーとの共有のデータ保管場所(リポジトリ)に、自動的にそして頻繁に統合させる手法になります。また、コードの統合だけではなく、自動的にビルドとテストも実行されます。「頻繁に」というのが重要なポイントで、頻繁に統合することで、バグの早期発見や迅速な修正対応が可能になるというメリットがあります。
継続的デリバリー/デプロイメント(CD)は、継続的インテグレーション(CI)の先のステップになります。CIにおいて自動でビルドやテストが実行された、検証済みのソースコードを自動でリポジトリにリリースすることによって、本番環境にデプロイ可能な状態を常に保っておくのが継続的デリバリーです。さらに、本番環境へのデプロイの自動化までのプロセスを構築するのが継続的デプロイメントです。
CI/CDが登場する以前は、各フェーズが完了するまで次のフェーズに進めないという、ウォーターフォール型開発の不可逆的な仕組みのなか、手動でビルド・テスト・デプロイなどの作業を実施していました。このような開発体制では、いくつかの点が開発者たちの悩みの種になっていました。
例えば、
- テストフェーズまでバグが発見されないため、修正コストが高くなる
- 大規模な変更を一度にデプロイするため、リスクが高い(作業者の精神的な負荷も高い)
- 人的ミスによる品質低下のリスクが高い
こういった問題点を解決できる実践的な方法として、DevOpsやアジャイル開発の広まりとともに、CI/CDは導入が進められてきました。
まとめると、CI/CDを取り入れて、コード変更を頻繁に反映し、リリース、デプロイまでの手順を自動化させることにより、開発サイクルの短縮、品質の向上、そしてリスクの分散を実現することができるのです。
▼CI/CDについてはこちらの記事で詳しく解説しております。あわせてご覧ください!
CI/CDとは?CI/CDツールを選ぶポイント7選&ツール比較!
2. CircleCIとは?開発の経緯と目指す方向性
CI/CDツールで代表的なものとして、オンプレミス型のオープンソースのツール、Jenkinsがあります。ピシッと決めたおじさんのロゴマークが印象的なツールです。
▲Jenkins公式サイト:https://www.jenkins.io/
CircleCIはJenkinsよりも後発のCI/CDツールとして登場しました。CircleCIの開発のきっかけの一つは、Jenkinsの存在だったとCircleCIの2019年当時のCTOは語っています。Jenkinsは基本的にはオンプレミス型であるため自社でサーバーの準備をする必要がありますが、その煩わしさと管理の手間を解消するためにクラウドベースのSaaSツール、CircleCIは開発されました。
▲CircleCI公式サイト:https://circleci.com/ja/
2011年にリリースされた当時は、規模の小さなスタートアップ企業がユーザーの大半でした。今やFacebookを運営するMeta社やAdobeなど、世界中の著名な大企業がCircleCIを利用しています。スケーラビリティの高さが大企業からも選ばれる要因の一つになっています。日本でもソフトバンクやサイバーエージェント、メルカリといった、大企業から勢いのある企業まで幅広いユーザー層を獲得しており、特にクラウドネイティブな開発環境で人気を集めています。
これまでCircleCIはクラウド環境でビルドプロセスに関する膨大なデータを収集し、解析してきました。最近では機械学習やAI技術を活用して、より高度な分析や予測を行っています。高度に解析された、開発効率を上げるための有益な情報をユーザーに提供していくことこそが、クラウドネイティブなツールの強みであると言えます。
CircleCIは開発当初から、クラウドネイティブであることにこだわってきました。今後もその方針は変わらず、その分野における新機能追加や既存機能の改善を加速していくとのことです。
3. CircleCIの特徴:Jenkins、GitHub Actionsとの比較
CircleCIの他にCI/CDツールとして代表的なツールであるJenkinsとGitHub Actionsをピックアップし、機能面の比較をしていきたいと思います。比較する前に、まずはCircleCIの特徴を整理してみましょう。
CircleCIの特徴
クラウドベースのSaaS型ツール
クラウドベースのツールであり、ユーザーがインフラの管理やサーバーの構築を行う必要がない点がCircleCIの最大の特徴です。これにより、環境構築のコストを低く抑えることができ、すぐにツールを使い始めることができます。
柔軟なパイプライン設定
YAMLファイルを使用して、ビルド、テスト、デプロイのフローを詳細に設定することができます。YAMLファイルとは、シンプルで直感的な構文を持つ、読みやすい形で記述するためのテキストファイルです。理解しやすいファイル形式である一方で、データ構造を階層的に表現するのにも適しています。ビルド、テスト、デプロイのフローを明確に整理でき、複雑なパイプラインを簡単に管理することができます。
Orb機能
CI/CDパイプラインの設定を簡単に共有・再利用できるようにするためのOrbという機能を提供しています。Orbは、ジョブやコマンド、実行環境の設定などを1つのパッケージにまとめたものです。これにより、同じ設定を何度も書く必要がなくなり、効率的にCI/CDを行えるようになります。
豊富な統合オプション
代表的なリポジトリ管理システムであるGitHubやBitbucket、GitLabといった外部サービスと簡単に連携することができます。
CircleCIとJenkinsの違い
環境構築の手間
Jenkinsはオンプレミス型で、柔軟なカスタマイズが可能な一方、SaaS型のCircleCIに比べ環境構築に時間と労力がかかることが多いです。
運用コスト
Jenkinsはオープンソースで基本的には無料ですが、自前でサーバーを立てる必要があり、運用やメンテナンスにコストがかかります。一方、CircleCIはクラウドサービスであるため、利用料金はかかりますが、運用コスト全体で見るとコストを低く抑えられる場合があります。
プラグインの豊富さ
Jenkinsには、1,900以上もの豊富なプラグインが用意されています。これにより、ほぼすべての機能をプラグインで拡張することができ、開発者は自分のニーズに合わせてカスタマイズすることが可能です。ただし、プラグインは常に最新のバージョンに保つ必要があり、メンテナンスや管理に手間がかかるという点には注意が必要です。一方で、CircleCIは再利用可能な設定パッケージ、Orb機能の活用により、プラグインに頼らずに柔軟にCI/CDパイプラインを構築することができます。
CircleCIとJenkinsの一番大きな違いは、クラウドベースか、オンプレミス型かというところです。クラウドネイティブな開発環境であれば、CircleCIが適しており、セキュリティ要件が厳しく、クラウドサービスの利用が制限されている企業や組織にはJenkinsが適しています。また、Jenkinsは設定や管理が複雑なため、作業が属人化しやすいという特徴があります。開発チームのスキルも、ツール選択時には考慮するといいでしょう。
CircleCIとGitHub Actionsの違い
▲GitHub Actionsサービスサイト:https://github.co.jp/features/actions
GitHubとの統合
GitHub ActionsはGitHub内で直接CI/CD機能を提供し、リポジトリのイベント(プッシュ、プルリクエストなど)をトリガーにしてワークフローを実行できます。これにより、開発者は一つのプラットフォームでコード管理とCI/CDを統合できるようになります。一方、CircleCIは外部サービスとして動作し、GitHubとの連携はAPIやWebhookを通じて行います。
設定の管理
CircleCIでは設定ファイルをリポジトリに保存しますが、GitHub ActionsはGitHubリポジトリ内の特定のディレクトリに配置することで、よりシンプルに管理できます。
トリガーの柔軟性
GitHub Actionsは多様なGitHubイベントをトリガーとして利用できるため、より柔軟なワークフローの構築が可能です。CircleCIは主にコミットやプルリクエストをトリガーとして使用します。
CircleCIもGitHub Actionsもクラウドベースで利用できるツールです。CircleCIは独立したCI/CDプラットフォームとしての強みを持ち、GitHub ActionsはGitHubとの統合を最大限に活かした便利なCI/CDツールとして位置付けられます。プロジェクトのニーズやチームのワークフロー、現在のツールチェーンによって最適なツールを見極める必要があります。
4. CircleCIの料金体系
クラウド版のCircleCIには無料プラン含め、料金プランが3種類用意されています。また、必要に応じてセルフホスティング版も選択することが可能です。(料金は変動する可能性があるため、導入の際には公式サイトをチェックすることをおすすめします。)
▲CircleCIの料金体系(公式サイトより)
クレジット制
CircleCIは「クレジット」という独自の単位を使用しており、1クレジットは約0.0006ドル(約0.09円)に相当します。クレジットはプリペイド式で、事前にクレジットを購入し、サービスを使用するたびにそのクレジットが消費されていくシステムになっています。
基本料金
- 無料プラン:月に30,000クレジットが無料で提供されます。小規模なプロジェクトや個人利用に適しています。
- 有料プラン:月額15ドルから利用できるPerformanceプランと、月額2,000ドルのエンタープライズ向けのScaleプランがあります。ScaleプランはGPUを含めた全ての環境に対応することができます。
クレジットの消費
クレジットは主に以下の要素に基づいて消費されます。
- 使用時間:CircleCIのサーバーを使用した時間に基づいてクレジットが消費
- リソースの大きさ:サーバー性能の高さに基づいてクレジットが消費
- 特別な機能の使用:一部の高度な機能を使用する際に追加のクレジットが必要
※クレジットの消費量の目安も記載しておきます。実際のクレジット消費量は、プロジェクトの規模、ビルドの頻度、使用するリソースなどによって大きく変動する可能性があるため、あくまで目安としてご参考ください。ちなみに、CircleCIのウェブアプリでは、「Plan」>「Plan Usage」を確認することで、実際の使用状況を把握できるようになっています。
- Linux Mediumマシンの場合、10クレジット/分で消費されます。1時間あたり600クレジットに相当します。
- 25,000クレジットのパッケージを例にすると、Linux Mediumマシンで約2,500分(約41.7時間)のビルド時間に相当します。
- より大きなリソースを使用する場合、クレジットの消費量は増加します。例えば、より高性能なマシンタイプやリソースクラスを選択すると、1分あたりのクレジット消費量は増加します。
- 並列実行を使用すると、ビルド時間は短縮されますが、総クレジット消費量は変わりません。例えば、2倍の並列実行を使用すると、2,500分のビルドが1,250分で完了しますが、総クレジット消費量は同じになります。
従量課金制
使用量に応じて料金が変動します。つまり、CircleCIをたくさん使用すればするほど、より多くのクレジットが消費される仕組みです。
CircleCIは小規模なプロジェクトから大規模な企業まで、使用量に応じて柔軟に対応できる料金体系になっています。使えば使うほど料金は上がりますが、使用しない時の無駄な支払いを抑えることができるため、使用する度合いに応じて適切なコストで運用することができます。
5. さいごに
いかがでしたでしょうか?この記事で紹介した以外にもCI/CDツールはさまざま提供されていますが、中でもCircleCIはクラウドネイティブな開発環境では、最適なCI/CDツールと言えそうです。初期設定も簡単で、無料プランも用意されているため、まずは試してみたいという方も始めやすくなっています。この記事を読んで、CircleCIを使ってみたくなったという方はぜひ無料プランから試していただければと思います。
アイスリーデザインではソフトウェア開発におけるツールの導入支援をおこなっております。豊富な経験と専門知識を活かし、お客様のニーズに最適なツール選定から導入、運用までをトータルでサポートいたします。さらに、効率的な開発体制の構築と、チームの生産性の向上を実現します。CircleCIの導入支援サービスについて詳しく知りたい方は、こちらをご覧ください。