64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
# Component Dependency Graphs
|
||
|
||
このディレクトリには、PhotonCloudプロジェクトのコンポーネント依存関係を可視化したGraphvizファイルが含まれています。
|
||
|
||
## ファイル
|
||
|
||
- `component-dependencies.dot` - 高レベルな依存関係図(レイヤー別)
|
||
- `component-dependencies-detailed.dot` - 詳細な依存関係図(内部構造含む)
|
||
|
||
## 画像生成方法
|
||
|
||
Graphvizがインストールされている場合、以下のコマンドでPNG画像を生成できます:
|
||
|
||
```bash
|
||
# 高レベルな依存関係図
|
||
dot -Tpng component-dependencies.dot -o component-dependencies.png
|
||
|
||
# 詳細な依存関係図
|
||
dot -Tpng component-dependencies-detailed.dot -o component-dependencies-detailed.png
|
||
|
||
# SVG形式(拡大縮小可能)
|
||
dot -Tsvg component-dependencies.dot -o component-dependencies.svg
|
||
dot -Tsvg component-dependencies-detailed.dot -o component-dependencies-detailed.svg
|
||
```
|
||
|
||
## Graphvizのインストール
|
||
|
||
### NixOS
|
||
```bash
|
||
nix-shell -p graphviz
|
||
```
|
||
|
||
### Ubuntu/Debian
|
||
```bash
|
||
sudo apt-get install graphviz
|
||
```
|
||
|
||
### macOS
|
||
```bash
|
||
brew install graphviz
|
||
```
|
||
|
||
## 図の説明
|
||
|
||
### 高レベルな依存関係図 (`component-dependencies.dot`)
|
||
|
||
- **Infrastructure Layer** (青): ChainFire (分散KVストア), FlareDB (マルチモデルデータベース、FoundationDB風) - 基盤ストレージサービス
|
||
- **Platform Layer** (オレンジ): IAM, Deployer - プラットフォームサービス
|
||
- **Application Layer** (緑): 各種アプリケーションサービス
|
||
- **Deployment Layer** (紫): NixOSモジュール、netboot、ISO、first-boot自動化
|
||
|
||
### 詳細な依存関係図 (`component-dependencies-detailed.dot`)
|
||
|
||
各サービスの内部構造(クレート/モジュール)と、サービス間の依存関係を詳細に表示します。
|
||
|
||
**注意**: FlareDBは**FoundationDBのようなマルチモデルデータベース**として設計されています。分散KVストア(RocksDB + Raft)が基盤で、その上に複数のフロントエンドレイヤー(KV API、SQLレイヤーなど)を提供します。時系列データの保存には**NightLight**(Prometheus互換メトリクスストレージ)を使用します。
|
||
|
||
## 凡例
|
||
|
||
- **青い実線**: ランタイム依存関係(直接使用)
|
||
- **青い点線**: オプショナルな依存関係
|
||
- **オレンジの線**: サービス間の統合
|
||
- **紫の線**: デプロイメント/設定関連
|
||
- **赤い点線**: systemdの起動順序依存
|