San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
DevSecOps

継続的デリバリー(CD)とは? 🔄 パイプラインと利点

貴社のニーズに合わせ、必要とするソフトは異なります。多様な開発目標に対応するため、統一された手法は推奨されません。継続的デリバリー(CD)は採用される開発手法のひとつです。 

意味は何か? 

なぜCDが他の手法より優れているのか? 

どのようなベストプラクティスがあるか?

これらの疑問があるなら、記事を読み進めると答えが見つかるでしょう。

継続的デリバリー(CD)とは? 🔄 パイプラインと利点

継続的デリバリー(CD)とは?

新しいソフトウェア開発手法であるCDは、開発目標全体を短いサイクルに分け、同時進行で進めます。 

アプリ全体を一度に書くのではなく、CDでは小さなサイクルでコードを作成します。コード生成はほぼ自動化されるため、全体の品質が維持されます。 

開発目標が小さく明確になることで、各部品の作成、展開、テストが容易になり、エラーもすぐに発見・対処できます。 

主にDevOpsの開発で採用され、CI(継続的インテグレーション)と併用されます。CIとCDは、ソフトウェア作成、フィードバック、導入/リリースの流れ(CI/CDパイプライン)を生み出します。 

 

継続的デリバリーの利点

ウォーターフォールなどの従来手法と比べ、CDはDevOpsチームに適しており、以下の利点があります。 

  • 扱いやすさ

開発者は小さな部分でコードを作成・更新できるため、大規模なコードベースを初めから構築する必要がなく、少しずつ拡大できます。 

  • 迅速なトラブルシュート

小さいコードベースはバグの確認が容易です。コード量が少ないため、エラーがすぐに発見・修正され、製品工程に深く影響するのを防ぎます。 

  • 迅速な開発

複数の開発者やチームが同時に異なる部品の作成に取り組むため、連携しながらアプリの各部を作り、開発時間が短縮されソフトウェアが速く仕上がります。 

継続的デリバリーとデプロイメント・インテグレーションの違い

まず、継続的インテグレーションは継続的デリバリーへと拡張されます。CDは継続的に作成されたコードが連続して提供され、変更の結果も予測します。 

CIはコードベースへの各変更に対するフィードバックを重視し、リリース前にバグを検出します。両者を組み合わせることで、各段階で自動テストが行われ、コードリリースの最適化が図れます。 

ここで、継続的開発と継続的デリバリーの違いについて説明します。後者はコードが自動で複数の開発段階を通過しますが、各変更は手動による承認が必要です。 

継続的デプロイメントは自動コードテストとリリースを対象とし、自動でスケール、ロールバック要件も監視します。一方、継続的デリバリーは本番と似たステージングエリアを使うため、時間差が生じます。 

この問題は継続的デプロイメントで解消され、ステージングエリアが不要なため時間差はありません。なお、継続的開発ではステージングエリアで自動テストが行われます。 

CI/CDパイプラインとは?

CDはCI/CD、すなわち継続的インテグレーション/継続的デリバリーのパイプラインの重要な要素で、開発段階を自動化・統合することを目指します。 

CIは共通のリポジトリを用いて、機能追加やコード変更を継続的に記述、テスト、統合します。アプリを複数の部分に分けると効果的です。 

前述の通り、CDは開発段階を分割し自動化することを意味し、CIに続いて生まれました。両者を連携させることで、人為的な介入やエラーを大幅に減らす自動化が実現します。 

通常、このパイプラインでは単体テスト、コードのコンパイル、バイナリ作成、コード解析などのツールが使用され、DevOpsを採用する場合、CD/CIは開発者とIT運用チームを結ぶ基盤となります。 

DevOpsで継続的デリバリーはどう機能するか

CDはDevOpsの重要な要素であり、両者は密接に関連しています。DevOpsにおける継続的デリバリーは、質の高いアプリの作成と展開を継続的に実現する現代的な手法です。 

DevOpsは開発と運用を統合し、複雑なエンタープライズアプリの作成を効率的に進められるようにします。CDはその中でも有効な手法の一つです。 

DevOpsの目標は、各コードごとに開発ライフサイクルを改善し、コード更新やバージョン管理を初めからスムーズにすることです。 

DevOpsでのCDパイプラインは、分断されたソフトウェア部品を統合し、共通リポジトリでコードを共有できる環境を整えます。複雑なコードを小さく分割することで衝突のリスクを軽減します。 

DevOpsは完璧なコード実行を目指し、CDは各段階でのコードテストを可能にすることでこれを実現します。コードは常にテストや更新に利用可能です。 

CDパイプラインの評価ポイント

CDパイプラインの実装は貴社のニーズに合わせ、コンピューティング環境、使用ツール、規制要件、開発目標に応じた機能を提供します。 

そのため効果測定の統一プロトコルはありませんが、いくつかの指標はCDパイプラインの重要性を評価する上で有用です。以下の指標が例となります。 

リードタイムは、要件把握から実際に機能するまでの時間差を示し、増分ロード時間を詳しく見ることで成果物を分割するタイミングが把握しやすくなります。 

サイクルタイムは、プロセスが完遂するまでの時間を測る指標で、CDの各イベントの処理時間を反映します。単一サイクルや全体の時間を把握することは高い効率性のために重要です。 

次に重要なのはMTTR(平均復旧時間)で、失敗したアップデート後にシステムが元の動作状態に戻るまでの時間を示します。 

不具合解決時間は、不具合が発生してから解決までにかかった総時間を示します。例えば、2月に発見され、8月に解決された場合、その解決時間は6ヶ月となります。 

最後にテスト合格率を追跡することを推奨します。これにより、どれだけの質の高い成果物が生成されているか、自動テストの効果やコード変更の頻度も把握でき、テスト方法の改善に役立ちます。 

継続的デリバリー実装のヒント

CDは開発プロセス全体を効率化し迅速化しますが、効果的な実装が前提です。以下の方法を参考にしてみてください。 

  • サービスレベル目標(SLO)に合わせて進める

ステークホルダーの期待に沿わない開発は、何度も手戻りや再確認が発生します。初めからそうならないよう、SLOを設定しその基準に沿って進めることを推奨します。 

SLOは、ソフトウェアが持つべき特性の集合を示し、これが定義されれば開発の目標が明確になります。 

例えば、SLOがIoTアプリは即時のデータのみ取得すると定めれば、その通りのコーディングが行われ、開発上の抜けや混乱を防げます。 

  • 自動化されたSLO評価を実施する

SLOの設定だけでなく、その効果評価も必要です。品質ゲートを活用することで、各開発段階の基準を定めやすくなります。 

前段階の基準が満たされた場合にのみ次へ進む仕組みは、各段階の品質を担保し全体のプロセス管理を容易にします。 

  • 繰り返し作業は自動化を活用する

すべてのコードテスト、設定確認、各段階の品質チェックなど、DevOpsでは繰り返し作業が発生します。これらは自動化することで時間と労力を節約し、精度を高められます。 

  • シンプルさを心がける

複雑であることは必ずしも生産性が高いとは限りません。むしろ、複雑さは進行を遅らせるため、CDパイプラインはできるだけシンプルに保つことが推奨されます。必要なツールや自動化、SLOに基づくオーケストレーションを活用してください。 

また、全体のCDパイプライン管理は集中管理型ダッシュボードを利用すると、プロセスがシンプルで扱いやすくなります。 

  • 継続的な監視と共にオブザーバビリティを活用する

クラウドネイティブなCDパイプラインでは、オブザーバビリティが重要です。これにより、SLOに適合した最適なクラウドアプリが開発可能になります。 

オブザーバビリティが収集するテレメトリーデータは、各段階の品質維持に役立ち、コードレベルの情報把握でエラー修正やトラブルシュートが容易になります。 

監視と組み合わせることで、アプリの性能や開発品質の可視性が向上し、継続的監視はアップデート統合を迅速化して性能低下を改善します。 

  • 継続的デリバリーツール

前述の通り、CDは自動化された手法であり、様々なツールが必要です。ここでは主要なCDツールを簡潔に紹介します。 

  • バージョン管理ツール(Git、Docker Hub、Cloudsmith package、NuGet、SVNなど) 
  • 完全自動化ビルドエンジン(Rake、Make、Mavenなど) 
  • ストレステストや通常負荷テストが可能な性能テスター(Netsparker、Arctic Wolf Vulnerability Scan、Fortify Static Code Analyzerなど) 
  • 統合、単体、機能テストシステム(MicroFocus、SauceLabs、Seleniumなど) 
  • 構成管理用ツール(Travis CI、GoCD、Jenkins、GitLab CIなど多数) 
  • 必要に応じたアーティファクトリポジトリ 

これらのツールは継続的パイプラインと一体で提供され、さらにコンテナを利用して開発の一貫性を保ちます。貴社の開発目標に合わせ、適切なツールを選定してください。 

結論

簡単で迅速な開発は最良の手法です。継続的デリバリーは、常にエラーのないコード提供を実現し、DevOpsを大いに支援します。CD/CIパイプラインの重要な要素として、コードの可読性向上にも寄与します。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック