継続的デリバリーとは
継続的に価値を提供することは、組織にとって必須の要件となっています。 エンドユーザーに価値を提供するには、エラーなく継続的にリリースする必要があります。
継続的デリバリー (CD)は、ビルド、テスト、構成、およびビルドから運用環境への展開を自動化するプロセスです。 リリース パイプライン では、複数のテスト環境またはステージング環境を作成して、インフラストラクチャの作成を自動化し、新しいビルドをデプロイできます。 後続の環境では、統合、負荷、およびユーザー受け入れテストの長期実行アクティビティが徐々にサポートされます。
CD が導入される前は、ソフトウェア リリース サイクルがアプリケーション チームと運用チームにとってボトルネックでした。 これらのチームは手動の引き継ぎに依存することが多く、その結果リリース サイクル中に問題が発生していました。 手動プロセスにより、遅延やエラーが発生する信頼性の低いリリースが発生しました。
CD は無駄のない実践であり、新しいコードやコンポーネントが利用可能になってからデプロイメントまで最速のパスで本番環境を新鮮に保つことを目標としています。 自動化により、運用インシデントの展開時間と軽減時間 (TTM) または 修復時間 (TTR) が最小限に抑えられます。 無駄のない言葉で言えば、CD はプロセス時間を最適化し、アイドル時間を排除します。
継続的インテグレーション (CI) により CD プロセスが開始されます。 リリース パイプラインは、テストが正常に完了した後、連続する各環境を次の環境にステージングします。 自動化された CD リリース パイプラインにより、フェイル ファスト アプローチによる検証が可能になります。つまり、失敗する可能性が最も高いテストが最初に迅速に実行され、より高速なテストが正常に完了した後にのみ、長時間実行されるテストが実行されます。
コードとしてのインフラストラクチャ (IaC)とモニタリングの相補的な実践により、CD が促進されます。
プログレッシブ露光技術
CD は、「爆発半径の制御」とも呼ばれる、プログレッシブ露光のいくつかのパターンをサポートしています。 これらのプラクティスは、ユーザー ベース全体に関する問題のリスクを回避するために、展開への露出を制限します。
CD は、プログレッシブ露光のために複数の展開リングをシーケンスできます。 リングはユーザー グループでの展開を試行し、そのエクスペリエンスを監視します。 最初の展開リングは、より広範なロールアウトの前に運用環境で新しいバージョンをテストするための カナリア にすることができます。 CD は、あるリングから次のリングへの展開を自動化します。
次のリングへの展開は、意思決定者が電子的に変更を承認する手動の承認ステップに依存することもできます。 CD は、規制手順またはその他の管理目標を満たすために、監査可能な承認の記録を作成できます。
ブルー/グリーン デプロイメントは、新しいグリーン バージョンをデプロイする間、既存のブルー バージョンをライブ状態に維持することに依存します。 この実践では通常、ロード バランシングを使用して、増加する量のトラフィックをグリーン デプロイメントに送ります。 監視でインシデントが検出された場合、トラフィックはまだ実行中の青のデプロイに再ルーティングされる場合があります。
機能フラグ または 機能トグル は、実験と ダーク ローンチ のためのもう 1 つのテクニックです。 機能フラグは、ID とグループ メンバーシップに基づいて、さまざまなユーザー グループの機能をオンまたはオフにします。
最新のリリース パイプラインにより、開発チームは新機能を迅速かつ安全にデプロイできます。 CD は、新しい展開をロールフォワードすることで、運用環境で見つかった問題を迅速に修正できます。 このようにして、CD は顧客価値の継続的な流れを生み出します。