0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

前置き

さて、前回の記事では、データアーキテクチャにも「コンポーネントの設計原則」を適用し、意味のある単位でまとめたり、結合時の依存の向きなどのお話をしてきました。

では、その後の運用フェーズで、どのようなログやメトリクスを監視した結果から、原則を適用した仮説であるデータアーキテクチャを検証すべきでしょうか? 

TOCを用いた科学的アプローチ

設計原則(仮説)を適用して設計したデータアーキテクチャを、データオブザーバビリティ(観測)で定量的に検証し、そこに対する TOCとECRS(改善プロセス)で修正するという、科学的アプローチを考えてみましょう。

以下に、そのメカニズムを詳細に書いて、観測対象とTOC / ECRSの具体的な適用フローとしてまとめ直します。

🎛️ 1. 観測:何を監視して「仮説のズレ」を発見するか?

まず、「6つの原則」の仮説が正しいかどうかを検証するための、具体的な観測対象(ログ、メトリクス、トレース)が必要です。以下の表にそれらを一覧でまとめてみました。

image.png

インラインコード

🛠️ 2. 改善:TOCとECRSによる「アーキテクチャ修正」の5ステップ

上記の観測によって「仮説と現実のズレ(=ボトルネック)」を発見したら、TOCの5ステップを適用して、そのボトルネックをECRSで改善します。

【シナリオ】 観測結果

Financeプロダクト(財務レポートなど。安定であるべき)が、Analyticsプロダクト(機械学習の実験的特徴量など。不安定)のデータに直接依存していることが判明(SDP違反)。

Analyticsチームが新しい実験のために特徴量のスキーマを変更するたびに、Financeプロダクトのパイプラインが失敗し、全社の財務レポートが遅延している(=システム全体のボトルネック)。

ステップ1:制約条件を特定する (TOC)

ボトルネック

Finance(安定)からAnalytics(不安定)への 「不適切な依存関係」 そのものが制約である。

ステップ2:制約条件を徹底的に活用する (TOC) + "ECRS" (パイプライン修正)

目的

まず、アーキテクチャを変えるという大手術をせずに、今のパイプラインの運用(ECRS) で問題を回避する「応急処置」を行う。

・(E)liminate (排除)

FinanceAnalyticsから直接データを読み込む同期的な依存を排除する。

・(R)earrange (入れ替え)

Financeが参照するAnalyticsのデータを、安定したビュー(View)や別の安定したストレージに一度コピー(入れ替え)し、Financeは(Analytics本体ではなく)その安定したコピーだけを参照するようにパイプラインの順序を変更する。

・(S)implify (単純化)

Analyticsチームは、その安定したビューのスキーマ(データ契約)だけは変更しない、というルールで運用を単純化する。

→ 結果

これで、Analyticsが内部でどれだけ実験しても、Financeは隔離された安定したビュー(契約)だけを見るため、直接的な障害は発生しなくなる。(データパイプラインの修正完了

ステップ3:他のすべてを制約条件に従属させる (TOC)

目的

チーム全体が、この「不適切な依存」という制約を理解し、悪化させないように動く。

アクション

Analyticsチームは、Financeチームとの「安定したデータ契約(ビューなど)」を変更する際には、必ずFinanceチームの許可を得る、というプロセスに従う。

ステップ4:制約条件を解消する (TOC) + "ECRS" (アーキテクチャ修正)

目的

応急処置では非効率なため、制約そのもの(アーキテクチャ) を修正する。
SDP違反を根本的に解消する。

・(E)liminate (排除)

FinanceAnalyticsに依存するという、依存関係そのものを排除する。

・(R)earrange (入れ替え)

AnalyticsFinanceが共通で必要とする「コアデータ」(例:TransactionData)が存在するはず。

その共通の安定したプロダクトを新たに定義し(アーキテクチャの修正)、FinanceAnalyticsも両者がそのTransactionDataに依存するように依存関係を入れ替える

(S)implify (単純化)

これにより、FinanceAnalyticsも、互いの複雑なロジックを知る必要がなくなり、依存関係が単純化される。

→ 結果

これで、SDP原則を満たす、健全で安定したデータアーキテクチャが実現した。

ステップ5:プロセスの最初に戻る (TOC)

目的

ボトルネックは必ず移動する。

アクション

この修正により、財務レポートの遅延はなくなった。

しかし、今度はMarketingプロダクトのデータ鮮度が新たなボトルネックになっていることが、別のメトリクスから判明した。プロセスは最初に戻り、継続的な改善が続く。

結論

これが、原則(仮説)、観測(データ)、改善(TOC/ECRS)を回し続ける、「生きたデータアーキテクチャ」 の運用メカニズムです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?