CircleCIによるCI/CD高速化と運用コスト削減
スマートキャンプ株式会社 / Annin
開発部長 / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
performance | 11名〜50名 | 2016年 | B to B |
利用プラン | performance |
---|---|
ツールの利用規模 | 11名〜50名 |
ツールの利用開始時期 | 2016年 |
事業形態 | B to B |
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
ツール自体は開発組織立ち上げ初期の2016年頃から導入されており、当時の背景や課題感はわかっていません。 導入当初から今に至るまで新規サービスの立ち上げや既存サービスのインフラ刷新のタイミングなどで、CircleCI以外のツールとの比較や乗り換え検討も実施してきましたが、結果としてCircleCIを継続的に利用しています。 なお、CIは当初からCircleCIで統一されていましたが、CDは当初Jenkinsを利用しており、以下の課題解消やツールの統一を目的としてCircleCIへ移行を実施しました。
- セルフホストサーバー管理の煩雑さ
- ジョブ同時実行数制限やスケーラビリティ
- 実行環境の多様化
比較検討したサービス
- Jenkins
- GitHub Actions
- AWS Codeシリーズ
比較した軸
- 価格・コスト
- 性能(実行時間・処理速度・並列実行数)
- 運用やメンテナンスのコスト
選定理由
運用やメンテナンスのコストが低く、導入やワークフローの構築も比較的手軽に行える点、加えて性能(実行時間・処理速度・並列実行数)の面で十分なパフォーマンスが得られた事が決め手になりました。
導入の成果
前述の課題は、CircleCIへの移行により見込み通り解消することができています。 CDの実行時間に関しては、アーキテクチャの変更タイミングでの移行だったため単純比較はできないですが、並列実行数の増加やキャッシュ活用などを要因として、従来技術での構築よりも確実に短縮出来ていると思います。 ワークフロー構築も比較的手軽なことに加え、以前から導入済みだったCIと記法が統一出来たことにより、運用・実装可能者が増えたこともプラスになりました。
導入時の苦労・悩み
導入時というよりは継続的な悩みですが、CircleCIは設定ファイルの分割が出来ないため、ワークフローの増加に伴って設定ファイルが肥大化しがちなため、設計も含めて工夫を行わないと管理が煩雑になる点は苦労しています。
導入に向けた社内への説明
上長・チームへの説明
コスト観点として実績や想定利用量、運用工数などから試算・精査を行い導入前後比較での説明を行うのはもちろんですが、加えて性能(並列実行数や処理速度)や利便性の観点でエンジニア組織全体の生産性や開発効率の向上に寄与することを説明しました。
活用方法
よく使う機能
- CircleCI Orbs
- キャッシュ(Dockerレイヤーキャッシュ)
- Test Insights
- SSHデバッグ
ツールの良い点
- Orbsが豊富に提供されていたり、Webに情報が多く公開されているため、導入やワークフローの構築が比較的簡単に行える
- デバッグ用にSSH接続できるため、ワークフロー構築時のトラブルシュートが行い易い
- CIに特化したInsightsが提供されているため、Success Rateの確認やFlaky Testの検出が行える
ツールの課題点
- 設定ファイルの分割が出来ず肥大化する
- 処理の共通化に工夫が必要
- アクティブユーザー数課金のため、リポジトリに非アクティブユーザーが多いと稼働状況によりコストにブレが出やすい
ツールを検討されている方へ
CIツールも多様化しており、特に最近ではGitHubActionsがGitHubとの連携面を含めて勢いがあるように感じますが、CircleCIはCIに特化しているためInsightsの提供なども含めて他ツールと比較してもメリットはあるのではないかと思います。 最近、弊社ではCircleCIとGitHubActionsを併用しており、使い所に合わせてコストや実行速度の最適化を行っていく方針が良さそうに感じています。各ツールは無料から利用できると思いますので、実際にそれなりのワークフローを組んで比較してみることをお勧めします。
スマートキャンプ株式会社 / Annin
開発部長 / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
よく見られているレビュー
スマートキャンプ株式会社 / Annin
開発部長 / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名