仕様駆動 DevOps(Specification-Driven DevOps)とは、マルチサービス環境のための仕様駆動 DevOps で提案されたアプローチであり、デプロイ環境の生成を管理された変換として扱う。直接観測できるデプロイ上の事実はリポジトリの成果物から導出し、観測できない、あるいは十分に定まっていない DevOps 上の判断は、簡潔で明示的な仕様に記述する。したがってリポジトリは網羅的な仕様とはみなされず、ハイブリッドなモデルにおける情報源の一つとされる。このモデルでは、環境はリポジトリ、最小限の明示的なデプロイ仕様、外部の技術的知識、そして生成モデルから生成される。著者らは、これがより広い意味での仕様ベースの開発と密接に結び付いていると説明している(仕様駆動開発 を参照)。

用法

その動機は、著者らが引く区別、すなわち機能的正しさ — 生成された環境がビルドでき、起動し、エンドツーエンドのパイプラインを実行できるか — と、デプロイ意図への忠実性 — 開発者のアーキテクチャ、セキュリティ、ワークフロー、本番運用に関する判断をどの程度再現しているか — との区別にある。彼らの実験では、LLM はリポジトリの内容だけから三つのマルチサービスアプリケーション向けに動作する Dockerfile と Docker Compose 構成を生成したが、ネットワークのセグメンテーション、マルチステージビルド、依存関係レイヤーのキャッシュ、ライブリロード用のマウント、本番用のフロントエンド配信、制限的なポート公開、クロスプラットフォームのビルドロジックを一貫して欠落させていた。彼らは DevOps の知識を、直接観測可能なもの(ポート、インポート、接続文字列)、導出可能なもの(サービストポロジー、プロキシのルート、ワーカーの役割)、未確定のもの(認証情報、互換性のあるイメージのバージョン)、意図のみのもの(ネットワークの信頼境界、公開サービスと内部サービスの区別、ビルド戦略、本番配信)に分類し、後の二つを仕様に置く。

仕様は最小限であることが意図されている。仕様には、リポジトリに存在しないか、リポジトリでは確定しないもの、ワークフロー、セキュリティ、プラットフォーム、本番運用に関する意図を表すもの、そして任意のモデルのデフォルトで置き換えられてはならないものだけを含めるべきであり、ソースコードがすでに表している事実を繰り返すと重複と保守コストが生じる。著者らは仕様を deployment-spec.yml として素描しており、デプロイのコンテキスト(環境モードと対象プラットフォーム)、ワークフロー(ライブリロード、デバッグポート)、ネットワークポリシー(セグメンテーションと公開・内部サービスの区別)、ビルド戦略(マルチステージビルド、名前付きターゲット、クロスプラットフォームの引数)、シークレットの仕組み、本番配信、インフラの制約を扱う。彼らは、明示的なポリシーが推論されたデフォルトに優先すること、指定されたランタイムのバージョンが推論された互換バージョンに優先すること、明示的なシークレットポリシーがリポジトリに見られるシークレットの扱いに優先すること、そして機能テストの合格をセキュリティポリシーへの準拠とみなさないことを提案し、さらに検証ルールと、生成された各要素がリポジトリ、仕様、根拠のないデフォルトのいずれに由来するかを記録するトレーサビリティモデルを加えている。

このアプローチは二つの極の間に自らを位置付けている。一方はリポジトリのみからの生成で、効率的ではあるが、安全でない、あるいは不適切なデフォルトを気付かれないまま持ち込むおそれがある。もう一方は手書きの完全なデプロイ仕様で、ソースコードにすでにある情報を重複させてしまう。

適用される場面

  • マルチサービスアプリケーション向けのデプロイ環境 — Dockerfile、Compose 構成、ネットワーク、ボリューム、シークレット、ポートポリシー — の生成に適用される。そこでは、一部のデプロイ上の判断が実装の中に信頼できる形で表現されていない。
  • リポジトリが、ソースコード、依存関係のマニフェスト、設定ファイル、補助的な成果物など、デプロイのうち観測可能な部分と導出可能な部分について十分な根拠を含んでいることを前提とする。
  • 提案者らは、このアプローチが対象とするリスクとして、リポジトリのみからの生成が意図の欠落をデフォルトで気付かれないまま埋めてしまうこと、そして機能的な成功をセキュリティや本番運用への準備が整ったことの証明であるかのように扱うことを挙げている。
  • 提案段階にある。比較的単純な三つの公開リポジトリを対象とした一つの探索的研究で導入されたものであり、著者らは、仕様は観測された欠落から分析的に導かれたもので、それを用いて環境を再生成することによる評価は行っていないと述べている。したがってこの研究が示しているのはその構造であって、有効性ではない。

関連用語