CI/CDとは?概要とアジャイル開発との関係性や導入メリットについて解説!

ビジネス環境における変化が速くなるとともに、ソフトウェア開発をより迅速に進めることが求められるようになりました。近年では、仕様変更への対応や開発期間短縮に効果のあるアジャイル開発に加えて、CI/CDを取り入れる開発手法が注目されています。現状よりもさらに「開発プロセスを効率化したい」「テストからリリースまでを高速化したい」という要望をお持ちの担当者も多いのではないでしょうか。本記事では、CI/CDの基本知識やアジャイル開発との関係性、CI/CDを取り入れるメリットを解説します。

CI/CDとは

CI/CDとは、ソースコードの変更検知とテストの自動化、テスト環境や本番環境へのデプロイを自動化するソフトウェア開発手法のことです。CI/CDを取り入れることで、ソフトウェア開発で繰り返される反復作業の手間とチェック、リリース作業を自動化して負担を低減できるため、大幅な効率化と品質向上が期待できます。

CI(継続的インテグレーション)

CIとは「Continuous Integration」の略称で、日本語では「継続的インテグレーション」と呼びます。これは、ソースコードの変更検知からテストまでの工程を自動化し、既存のシステムへ継続的に統合するパイプラインとして活用するものです。
CIでは、主に以下のような開発工程が自動化されます。

  • ソースコードの変更を確認
  • 変更されたソースコードのエラーをチェック
  • 既存機能を壊すような干渉がないかをチェック

この工程は、プログラムに変更が加えられるたびに行われるため、ソースコードの改修や機能追加などの際に人的工数負担が大幅に低減されます。

写真/CI(継続的インテグレーション)

CD(継続的デリバリー)

CDには2つの手法があります。まずは継続的デリバリーを意味する「Continuous Delivery」についてみていきましょう。
継続的デリバリーでは、CIのパイプラインを通過したソースコードを、自動的にリポジトリへデリバリー(リリース)します。これにより、ソースコードをテスト環境や本番環境へ移せる状態にします。継続的デリバリーで自動化されるのは、リポジトリへの移動までです。テスト環境あるいは本番環境へのリリースは、運用担当者などがタイミングをみて手動で行います。

写真/CD(継続的デリバリー)

CD(継続的デプロイ)

CDのもう一つの手法が、継続的デプロイです。「Continuous Deployment」の略称で、継続的デリバリーをさらに拡張した手法となります。継続的デプロイでは、CIのテストを通過したソースコードを、テスト環境や本番環境へリリースする部分まで自動化します。

  • 継続的デリバリー:リポジトリからテスト環境・本番環境へのリリースを手動で行う
  • 継続的デプロイ:リポジトリからテスト環境・本番環境へのリリースを自動的に行う

テスト環境や本番環境へのリリースまで自動化されるため、その間に人的チェックをする必要がありません。CIからユーザーに届くまでの工程が最も速い手法です。

写真/CD(継続的デプロイ)

CI/CDの仕組み

それでは、CIおよびCDの動きを踏まえて、その仕組みと全体像をみていきましょう。
CI/CDを活用した開発の大まかな流れは以下のようになります。まずは、継続的デリバリーの場合です。

  1. 開発者がPC環境にてソースコードを変更する
  2. CI(継続的インテグレーション)がソースコードの変更を検知する
  3. 変更されたソースコードをビルドして、プログラムのテストを実行する
  4. プログラムのエラーや既存機能への干渉(破壊)がないことを自動的に確認する
  5. CIをパスしたプログラムがCD(継続的デリバリー)によって、リポジトリへ自動的にリリースされる
  6. リポジトリに格納されたプログラムを、運用担当者がテスト環境や本番環境へ手動でデプロイする

上記を、継続的デプロイで実行した場合は、「6.」以降が自動化されます。ここでは、「5.」からの流れをみていきます。

  1. CIをパスしたプログラムがCD(継続的デプロイ)によって、リポジトリへ自動的にリリースされる
  2. リポジトリに格納されたプログラムを、自動的にテスト環境や本番環境へデプロイする

CI/CDでは、ソースコードのテストから本番環境への適用までが自動化されます。ただし、テストやチェック工程の仕様は人間が作成しなければなりません。そのため、テストプログラムの質が、ソフトウェアやアプリケーションの品質を大きく左右することを意識しておくことが重要です。

CI/CDがなぜ必要とされているのか?

CI/CDの必要性は、近年のDX推進や市場変化の速さを背景に、DevOpsとソフトウェアやアプリケーション開発の高速化を実現するためのアジャイル開発が重要視されているという背景にあります。
ビジネス市場の変化スピードは年々早くなり、企業はその変化に対応していくことが重要な課題となっています。特にソフトウェア開発では、仕様書を確定してソフトウェアを開発し、仕様変更があれば全体を見直して改変を加えていくといった、いわゆるウォーターフォールモデルでの対応が難しい場面があります。

そのため、DevOpsとアジャイル開発を導入する企業が増えました。同時に、求められる品質は高くなったことで、ソフトウェア開発のさらなるスピードアップが必要になりました。そこでテストからデプロイまでの工程を効率化するための「自動化」が必要になり、CI/CDのパイプラインが重要視されるようになったのです。
ただし、ウォーターフォールモデルでの開発においても、開発中にインテグレーションやテスト、検査を行う重要性が認知されるようになり、ウォーターフォールにCIを適用するケースも増えています。

図版/CI/CDがなぜ必要とされているのか?

DevOpsとアジャイル開発との関係性

DevOpsとアジャイル開発の目的には、効率的なソフトウェア開発からスムーズなリリース、それにともなう顧客満足度の向上があります。また、クラウドネイティブなサービスの増加や、ビジネス競争におけるスピードの加速、ユーザーの多様化やAIなどを含めたテクノロジーの進化により、開発における仮説検証型のサービスアップデートが不可欠になっていることも、DevOpsとアジャイル開発の採用に大きく関わっています。
DevOpsは、開発担当者と運用担当者が密に連携してシステム開発をする概念です。従来、開発部門と運用部門は、それぞれ別々にその役割を担ってきました。双方の部門ではその立場上、必ずしも方向性や利害関係が一致するわけではなく、部門同士で対立するケースがしばしばみられます。しかし、顧客満足度を向上させるには内部での進捗遅延を防ぎ、双方の部門のスムーズな連携によるソフトウェア開発とリリースが重要です。

アジャイル開発はソフトウェア開発手法のひとつです。機能を細分化してテストとリリースを反復しながら開発していくため、顧客の要望や仕様変更について柔軟に対処し、サービスを提供できます。アジャイル開発では、開発部門と運用部門の連携が欠かせません。つまり、アジャイル開発実現には、DevOpsの概念が不可欠です。
CI/CDは、DevOpsとアジャイル開発の中で、自動化による開発の効率化とヒューマンエラーの低減、そして迅速なサービスリリースを可能にします。CI/CDを導入すれば、開発部門の業務と運用部門の業務が自動化されるため、双方の部門の作業は大幅に効率化され、開発から本番運用までのスピードが飛躍的に向上します。CI/CDは、DevOpsも促進し、アジャイル開発をスピーディにするなど、ソフトウェア開発にとって欠かせないものになっています。

写真/DevOpsとアジャイル開発との関係性

CI/CDを導入するメリット

CI/CD導入にはどのようなメリットがあるのでしょうか。ここではあらためて3つのメリットについてみていきましょう。

写真/CI/CDを導入するメリット

開発スピードの向上

CI/CDのパイプラインを構築することで、ソフトウェア開発からデプロイまでのスピードが大幅に向上します。ソースコードを変更した後の以下の工程が自動化されるためです。

  • 変更検知
  • ビルド
  • テスト
  • デプロイ

ソースコードを書いた後の開発部門と運用部門が行うデプロイまでが自動化されるため、大幅なスピードアップが実現します。人の手で行っていた工程のリソースが空くことで、その他の作業を優先できるため、開発業務の効率化にもつながります。

品質の向上

CI/CDの導入で、テストの自動化により一定の品質を保てるようになります。制限された時間の中で急いでテストを行うこともなくなり、作業者によるテスト結果のバラツキも防げるため、全体的にソフトウェアの品質が向上します。ヌケ・モレのない適切なテスト定義を作成しておくことが、一定の品質を保つポイントです。

バグ修正からリリースまでの高速化

CI/CDではテスト工程が自動化されるため、プログラムのエラーや仕様との不一致、既存コードへの悪影響などが検出された場合に、開発者へ自動的にフィードバックします。仮に運用開始後にバグ修正が必要になっても、ソースコード変更からリリースまでの工程が自動化されているため、大幅な時間短縮が可能です。従来の手動によるデバッグ、テスト、リリースの工程と比べると、はるかに迅速な対応ができるようになります。

CI/CD実行環境・運用支援ツール「Connected CI®

  • Connected CI<sub>®</sub>

CI/CDを導入するにあたり、検討や環境構築から運用までには多くのリソースや期間を要します。このような課題を早期に解決してCI/CDを整備するならば、支援ツールの活用がおすすめです。CI/CD導入におけるツールはさまざまなベンダーが提供していますが、シーイーシーが提供する「Connected CI®」ならば、CI/CDの実行環境から運用支援までをサポートします。
たとえば、変化する市場の中で、お客様の要求に応じた短納期対応が可能です。また、利便性の高いツールを利用することで、DevOpsを強化してコストを抑えられます。ツールの自動化がヒューマンエラーを防ぎ、リリース品質を保証することが可能です。さらに、開発プロセスと整合性を保ちながら、効率的な管理をすることで拡張性も実現します。セキュリティの自動チェックによって、セキュアなソフトウェアを迅速に提供できることも特長のひとつです。
このように、スピードが求められるユーザーニーズに対して、DevOpsやアジャイル開発手法の概念を取り入れ、スピーディに繰り返す開発プロセスで、高品質なソフトウェアを迅速に行うモダン開発を提供します。また、Connected CI® はクラウドに構築済みの環境で使えるため、すぐに利用でき、運用開始までの期間とコスト、手間を大幅に低減できます。CI/CDをはじめDevOpsの運用状況の可視化もできるため、現状を直感的に把握できます。
以下に、Connected CI® の主な特長をまとめます。

  • CI/CDのプラットフォームを自社に最適な形へカスタマイズ可能
  • お客様の開発環境に構築済みのプラットフォームを組み込むだけで利用可能
  • 導入から利用開始までの期間やコストを大幅に削減
  • オンプレミスやクラウド、カスタムオーダーメイドにも対応
  • ツールの情報から、チームの熟成度を「CALMS」の指標で可視化
  • 測定と成熟度を算出の自動化で、継続的な改善支援が可能
  • 直感的なUIで、担当者だけではなく管理者にも現状把握が容易
  • お客様の開発環境にあわせて、DevOps・CI/CD・テスト自動化などの有益なツールを提案・導入支援
  • 運用が定着するまでサポート

これからCI/CDを導入するならば、「Connected CI®」を検討してみてはいかがでしょうか。

▼「Connected CI®」については、以下で詳しく解説していますので、あわせてご覧ください。

CI/CD実行環境・運用支援ツール Connected CI® | プロダクト・CI/CD・検証 | シーイーシー Connected Service

まとめ

CI/CDを導入することで、ソフトウェア開発を効率化し、テストから本番環境へのデプロイまでを高速化できます。ソースコードの変更検知からプログラムのテスト、テスト環境や本番環境へのデプロイを自動化できるCI/CDのパイプラインは、DevOpsの強化やアジャイル開発に不可欠なものとなっています。開発スピードの高速化や品質の向上、バグ修正からのスピーディなリリースを実現するためにも、CI/CDの導入を検討してみてはいかがでしょうか。

要約文

CI/CDは、ソースコードの変更検知とテストの自動化、本番環境へのデプロイを自動化するソフトウェア開発手法です。現代のソフトウェア開発環境におけるDevOpsとアジャイル開発にとって不可欠なものとなりました。本記事では、CI/CDの基本知識やDevOpsとアジャイル開発との関係性、CI/CDを導入するメリットを解説しています。

お問い合わせ

お問い合わせは下記までご連絡ください。
株式会社シーイーシー 営業本部 営業企画部
住所:〒150-0022 東京都渋谷区恵比寿南1-5-5 JR恵比寿ビル8F
TEL:03-5789-2455 FAX:03-5789-2575
HP :https://www.cec-ltd.co.jp

page top