継続的デリバリー成熟度モデルは、継続的インテグレーション、デリバリー、およびデプロイ(CI/CD)の採用と実装の進捗状況を評価するためのフレームワークを提供しています。
一般的に、成熟度モデルは CI/CD を組織のカルチャ、デプロイプロセス、テスト、レポート、またはフィードバックといった複数の柱に分割しています。 モデルは柱ごとに、基本または入門者からエキスパートに渡る、各成熟度に関連した手法と動作を説明しています。
たとえば、CI/CD を初めて導入する場合は、すべてのコードをソースコントロールに格納すること、全チームメンバーが定期的に変更をコミットすることを促進すること、自動ユニットテストを作成し始めることが出発点となります。
この早い段階の CI/CD では、テストの数週間後に手動で変更をリリースするのが一般的ですが、特定の日に定期的にリリースする目標を設定することで、後々洗練させて自動化できる、予測可能で確実なプロセスを作ることに専念できます。
基礎を確立できたら、自動テストの拡張と、本番前環境の作成に関するオペレーションチームとの協力により、パイプラインの最初のステージを自動化する方向に進めることができます。
パイプラインの構築が進むにつれ、チームは他の機能チームとさらに緊密に協力し、ソフトウェアの提供に対する責任をさらに負い始める必要が出てきます。 このため、ソフトウェアが本番でどのように実行するかに関する可視性が必要であり、他の組織をそのアプローチに取り込む必要があります。
早期の段階でこれらの要素の基礎を築くことで、技術的な課題を解決しながら進めていくことがはるかに容易になります。 実践方法の説明を成熟度のレベルごとに用意することで、変更のたびに迅速なフィードバックを提供するリリースプロセスを高速化し、信頼性と反復性を備えやすくなります。
組織によっては、変更を 1 日以内にデプロイ可能にすることが最終目標である場合があります(今すぐ、または高度なレベルに達したときに)。 または、更新がパイプラインの全ステージを通過した場合に公開する継続的デプロイを達成することが目標の場合もあります。 また、本番からの継続的フィードバックを使用して、仮説駆動型開発(エキスパートレベル)を達成することも可能です。
継続的デリバリー成熟度モデルを使用することで、CI/CD で達成しようと考えている内容の議論を円滑に進められるようになり、さまざまな要素を実装するための段階的なアプローチを計画できるようになります。
達成可能な目標を設定しながらパイプラインを徐々に構築すると、このプロセスをより管理しやすくなり、それまでに達成したことを評価し、それから学ぶ機会が得られます。
各柱に対してあなたやチームの位置を示すことで、次のステージに進む前に、基準を満たす上でさらに投資する必要のある分野を特定することもできます。 最後に、成熟度レベルをビジネス関係者と共有すると、合理的な期待を設定し、エキスパートレベルに達せずとも CI/CD から得られるメリットを伝達しやすくなります。