MENU

CircleCI — SaaS型CIの草分けと高速並列実行の代名詞

CircleCI アイキャッチ
CircleCI

CircleCIは2011年にポール・ビッグスら3名がY Combinatorで創業した、SaaS型CIサービスの草分け的存在です。「CIサーバーを自分で立てたくない開発者」に向けてGitHubと連携するだけで使えるホスティング型ビルドサービスを提供し、JenkinsからSaaSへの移行潮流を切り拓きました。.circleci/config.yml で宣言する設定ファイルや、ジョブを細かく並列実行できる強力な並列処理機構、Dockerイメージを第一級でサポートしたエグゼキューターなど、後発CIサービスに大きな影響を与えた機能を多数生み出しています。

目次

この記事の目次

  1. ジョブ・ワークフロー・Orbsの構造
  2. Y Combinator発の老舗SaaS
  3. 巨大テストの並列実行が真骨頂
  4. GitHub ActionsとJenkinsとの比較
  5. まとめ

ジョブ・ワークフロー・Orbsの構造

ジョブ・ワークフロー・Orbsの構造

CircleCIの設定は .circleci/config.yml に書きます。「ジョブ」は1つのDockerコンテナまたはマシン上で実行されるステップ列で、steps: 配下に checkout run save_cache などの命令を並べていきます。「ワークフロー」は複数ジョブをDAG(有向非巡回グラフ)として組み立てる仕組みで、「テストが通ったら並列でビルドとリンタを走らせ、両方成功したらデプロイ」のような複雑な依存も表現できます。

「Orbs」はCircleCI独自のパッケージ機構で、AWS CLI のセットアップやSlack通知などの再利用可能な設定スニペットをコミュニティが共有しています。orbs: aws-cli: circleci/aws-cli@4.0 の一行で数十行ぶんのboilerplateを省ける仕組みで、GitHub Actionsの「アクション」概念に大きな影響を与えました。並列処理キー parallelism: を使うと、テストファイルを自動分割し10台・20台で並列実行できるため、巨大テストスイートを抱える企業に重宝されています。

Y Combinator発の老舗SaaS

Y Combinator発の老舗SaaS

ポール・ビッグス、アラン・シェアロック、デイブ・ブラウンの3名が2011年のY Combinator冬期バッチで設立。ちょうど同年に登場したTravis CIと並び、「CIサーバーを所有しない時代」を切り拓いた2強として知られます。創業当初はRailsプロジェクト中心でしたが、Docker普及後はコンテナ実行が第一級でサポートされ、2018年の大型刷新「CircleCI 2.0」では、設定ファイル形式・並列処理・キャッシュ機構が全面再設計されました。

2023年1月にはセキュリティ侵害が公表され、ユーザーに環境変数の総入れ替えを要請する事態となりました。対応の透明性は評価される一方、シークレット運用の見直し契機となり、OIDCによる短命トークン採用が業界全体で加速。現在のCircleCIはエンタープライズ向けにフォーカスし、月数百万分のビルド時間を消費する大企業にも高い並列度と安定したパフォーマンスを提供しています。日本でもメルカリやfreeeなどの導入事例が知られています。

巨大テストの並列実行が真骨頂

巨大テストの並列実行が真骨頂

CircleCIの真骨頂は、何千件もあるテストを10並列・20並列で同時実行できるスケーラビリティです。parallelism: 10 を指定するだけでテストファイルがランナー間で自動分割され、合計実行時間が10分の1近くまで短縮されます。RSpecやJestのような並列化が難しいフレームワークでも、テスト時間を学習してバランスよく分割してくれるため、「PRが立ってから10分でレビュー可能」を維持したいスタートアップから大企業まで採用が広がりました。

Docker Layer Cachingでイメージビルドの中間層をリモートに保存できるほか、依存パッケージ用のキャッシュキー設計が柔軟で、Bundler・npm・Pipなどのインストール時間を大幅に削減できます。GPUランナーやArm64ランナーも提供されているため、機械学習のモデル評価やマルチアーキテクチャ向けのコンテナビルドにも対応可能です。Insightsダッシュボードで「遅いテスト」「不安定なテスト」を可視化する機能もあり、CI高速化のボトルネック発見に役立ちます。

GitHub ActionsとJenkinsとの比較

GitHub ActionsとJenkinsとの比較

CircleCIはGitHub Actionsの登場で「無料でCIといえばまずActions」の流れに押される面もありましたが、大規模並列実行や、Dockerイメージビルドの細かなキャッシュ制御では依然優位を保っています。GitHub Actionsは便利だが大規模になるとビルド時間や課金が気になる、という規模感の企業がCircleCIに移ってくるパターンや、Jenkinsの運用コストに疲れたチームがマネージドCircleCIへ乗り換える事例が今も継続的に発生しています。

Buildkiteのように「コントロールプレーンはSaaS、実行は自社サーバー」というハイブリッド型と比較すると、CircleCIは「Self-Hosted Runners」として後追いでこのモデルをサポートしました。選定の判断軸は『公開リポを無料で回したいか/巨大テストを高速に回したいか/オンプレ実行が必要か』の3点で、CircleCIは2番目の「巨大テストを安定して高速に」というニーズで今なお他のSaaS型CIを上回ります。日本拠点も継続的にユーザー会を主催し、コミュニティが厚い点も魅力です。

まとめ

CircleCIは、CIサーバーを所有しないSaaS型CIの草分けとして、Jenkinsからの大移行を牽引した歴史あるサービスです。並列実行・自動分割・Docker優先のエグゼキューターは後発CIに多大な影響を与え、大規模テストを高速に回したいエンタープライズの定番として現役で選ばれています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次