学習パス 06レッスン 4 / 6

サービスに依存する前に移行可能性を検証する

ソースコードの所有と、運用のポータビリティを区別します。エクスポート、独立したビルド、インフラへのアクセス、移行に必要な証拠をテストします。

実践10 分レビュー日

発行元 執筆方針

理解度を確認組織はソースコードを所有しています。運用のポータビリティを裏付ける、追加の証拠は何ですか?演習に取り組む
組織はソースコードを所有しています。運用のポータビリティを裏付ける、追加の証拠は何ですか?

学べること

  • サプライヤーなしで運用するために必要な資産と権利を特定する。
  • 重要な依存関係が生じる前に、小規模な移行演習を設計する。
  • エクスポート、運用の移行、削除の判断を区別する。

何を使い続けられる必要があるかを定義する

ソースコードを所有することには価値があります。ただし、移行計画の一部にすぎません。

ソースが会社のリポジトリにある、架空のアプリケーションを考えます。ビルドは、サプライヤーから非公開のパッケージをダウンロードします。本番環境は、サプライヤー所有のクラウドアカウントを使っています。データベースの復元手順は、誰も記録していません。

会社はコードを持っていますが、まだサービスを独立して運用できません。移行計画では、権利、資産、アクセス、知識を一緒に扱う必要があります。

依存関係を棚卸しする

資産または責任移行に関する問い
コードと履歴次のチームが、完全なリポジトリにアクセスできるか
パッケージとライセンス必要なすべての依存物を取得して使えるか
データとスキーマ関係を保ったまま、利用可能なレコードを復元できるか
インフラと設定環境と必要な設定を再作成できるか
IDとシークレット代わりの認証情報を誰が作り、アクセスを誰が制御するか
DNSと証明書公開エンドポイントを誰が移せるか
証拠と運用どの判断、runbook、テスト、インシデント記録を引き続き利用できるか

エクスポートの形式と範囲を確認します。読める文書をエクスポートできても、すべての関係、添付ファイル、実行記録が保たれるとは限りません。サンプルを求め、実際に使う人と一緒に確認します。

独立した再ビルドを実施する

安全なテスト環境と、承認されたサンプルデータを使います。権限を持つエンジニアに、提案された引き継ぎ一式を渡します。アプリケーションをビルドし、設定を適用し、データを復元し、一つの業務操作を最初から最後まで検証するよう依頼します。

不足する各項目と、入手にかかる時間を記録します。演習中に、文書化されていない知識を黙って補わないでください。目的は、次のチームに何が不足するかを見つけることです。

次に、移行の制約を調べます。サブスクリプションの重複期間、データ転送時間、パッケージへのアクセス、IDの変更、サポートの利用可能性などです。これらの費用を、自社構築と購入の比較に含めます。

エクスポートと削除を分ける

エクスポートはコピーを作ります。移行は、サービスを運用する主体を変えます。削除は、合意した手順に従って指定されたレコードを消します。これらは別々の判断であり、必要な証拠も異なります。

関連する責任者と、必要な保持期間と削除範囲を定義します。サプライヤーの現行の条件と手順を確認します。移行先のシステムを検証する前に、唯一利用できる復旧用コピーを削除しないでください。

Taigaは、管理者によるエクスポート手順と、それとは別の消去手順を文書化しています。シークレットの値は、エクスポートから除外されます。そのため、引き継ぎには、必要なシークレットを権限のある方法で再作成する手段が必要です。現在のエクスポート内容を、移行の要件に照らして検証してください。アプリケーション全体のバックアップだと考えないでください。

許容できる依存関係を判断する

ポータビリティのために、すべてのマネージドサービスを排除する必要はありません。価値、制約、移行経路を理解していれば、依存関係は合理的な選択になり得ます。

受け入れた依存関係、担当者、見直しの条件を記録します。アーキテクチャや契約に大きな変更があった後は、移行演習を繰り返します。続いて、これらの責任を最初から含める導入計画を学んでください。

演習に取り組む

架空のサプライヤーが、Gitリポジトリとデータベースのエクスポートを提供しました。アプリケーションを独立して運用するために必要な、他の項目を五つ挙げてください。一つ選び、不足する依存関係を発見できるテストを説明します。

ワークシートをダウンロード(Markdown)
理解度を確認 ↑

学習を続ける

出典と参考資料

Taigaの関連資料

← 前のレッスン: サプライヤーに証拠を求める