CI/CDとは


CIとは

CIは継続的インテグレーション(Continuous Integration)の略称です。
リポジトリへのアクションをトリガーにして自動でビルド、テストをする手法のことです。

CDとは

CDは継続的デリバリー(Continuous Delivery)または、継続的デプロイ(Continuous Deployment)の略称です。
継続的デリバリーがテストされたソースコードを自動でアップロードしデプロイ可能な状態にする手法のことで、継続的デプロイがアップロードされたソースコードを自動的に本番環境にリリースすることです。

CI/CDの種類

CI/CDには大きく分けてオンプレミス型とクラウド型があり、オンプレミス型としてはJenkins、クラウド型としてはTravis CIやCircleCIなどが有名です。オンプレミス型は拡張性が高いですが、自分たちで構築・運用する管理コストが発生します。クラウド型は拡張性が低いですが、サーバーなどを自前で用意する必要がなく、すぐに使い始めることができます。

オンプレミス型

  • jenkins
  • Concourse CI
  • Drone

クラウド型

  • Travis CI
  • CircleCI
  • Wercker
  • Codeship
  • AWS CodeBuild
  • GCP Cloud Build

メリットとデメリット

オンプレミス型 クラウド型
メリット
  • 拡張性が高い
  • ビルドするマシンの性能を自分で調整できる
  • オープンソースであることが多い
  • サーバーを自分で持たなくていよい
  • 簡単に始められる
  • アップデートをしなくてよい
  • コミュニティでナレッジを共有できる
デメリット
  • 運用コストが高い
  • サーバーを自分で用意する必要がある
  • 有料になる場合がある
  • ビルドするマシンの性能を選ぶことができない

CI/CDを使う理由

  • テストの自動化の重要性の高まり
  • アジャイル開発の浸透と進化

が主な理由です。

複雑なフレームワークの登場で、現在はバックエンドだけでなくフロントエンドでテストを必要とすることが多くなってきています。そのためテストの自動化の重要性が高まっています。
また、アジャイル開発が用いられることが多くなり、アジャイル開発で重要な速いスピードでサイクルを回してアプリケーションを改善していく際に自動化を導入することで効率的に開発をすることができるようになります。

CI/CDを用いることでテストが自動で行われ品質を高めるだけでなく、開発の効率も高めることができます。