アーキテクチャ図
アーキテクチャ図は、クラウドまたは CI/CD デプロイで一般的なサービスとリソース間の関係を表示するために使用されます。アーキテクチャ図では、サービス(ノード)は線で接続されます。関連するサービスはグループにまとめることができ、それらの構成方法をよりよく説明できます。
例
コピー
埋め込み
architecture-beta
group api(cloud)[API]
service db(database)[Database] in api
service disk1(disk)[Storage] in api
service disk2(disk)[Storage] in api
service server(server)[Server] in api
db:L -- R:server
disk1:T -- B:server
disk2:T -- B:db
構文
アーキテクチャ図の構成要素は:グループ、サービス、リンク、接続点です。
サポートされるコンポーネントでは、アイコンは小括弧 () でアイコンを囲んで宣言し、ラベルは角括弧 [] でテキストを囲んで宣言します。
アーキテクチャ図を開始するには、architecture-beta 構文を使用し、次にグループ、サービス、リンク、接続点を列挙します。これらの 3 つの構成要素は任意の順序で宣言できますが、識別子が別のコンポーネントによって以前に宣言されていることを確認する必要があります。
グループ
グループを宣言する構文は:
コピー
埋め込み
group {group id}({icon name})[{title}] (in {parent id})?
組み合わせると:
コピー
埋め込み
group public_api(cloud)[Public API]
public_api という名前のグループが作成され、アイコン cloud を使用し、Public API というラベルが付きます。
さらに、任意の in 構文を使用して、グループを別のグループ内に配置できます。
コピー
埋め込み
group private_api(cloud)[Private API] in public_api
サービス
サービスを宣言する構文は:
コピー
埋め込み
service {service id}({icon name})[{title}] (in {parent id})?
組み合わせると:
コピー
埋め込み
service database1(database)[My Database]
database1 という名前のサービスが作成され、アイコン database を使用し、ラベルは My Database です。
そのサービスがグループに属する場合、任意の in 構文を使用してその中に配置できます
コピー
埋め込み
service database1(database)[My Database] in private_api
リンク
リンクを宣言する構文は:
コピー
埋め込み
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?
リンクの方向
リンクがサービスのどちら側から出るかは、接続矢印のサービス側にコロン : を追加し、L|R|T|B を加えることで指定できます。
例:
コピー
埋め込み
db:R -- L:server
サービス db と server の間にリンクを作成し、このリンクは db の右側から server の左側に伸びます。
コピー
埋め込み
db:T -- L:server
サービス db と server の間に 90 度のリンクを作成し、このリンクは db の上部と server の左側から延びます。
矢印
左側の方向の前に < を追加するか、右側の方向の後に > を追加することで、リンクの両側に矢印を追加できます。
例:
コピー
埋め込み
subnet:R --> L:gateway
矢印が gateway サービスを指すリンクを作成します。
グループ外のリンク
リンクをあるグループから別のグループまたは別のグループ内のサービスに遷移させるには、serviceId の後に {group} 修飾子を追加できます。
例:
コピー
埋め込み
service server[Server] in groupOne
service subnet[Subnet] in groupTwo
server{group}:B --> T:subnet{group}
groupOne から出発し、server の隣接位置に接続し、次に groupTwo に入り、subnet の隣接位置に接続するリンクを作成します。
注意すべき点は、groupId はリンクの指定には使用できず、{group} 修飾子はグループ内のサービスにのみ使用できることです。
接続点
接続点は特殊なタイプのノードで、リンクの潜在的な四方向の分岐点として機能します。
接続点を宣言する構文は:
コピー
埋め込み
junction {junction id} (in {parent id})?
コピー
埋め込み
architecture-beta
service left_disk(disk)[Disk]
service top_disk(disk)[Disk]
service bottom_disk(disk)[Disk]
service top_gateway(internet)[Gateway]
service bottom_gateway(internet)[Gateway]
junction junctionCenter
junction junctionRight
left_disk:R -- L:junctionCenter
top_disk:B -- T:junctionCenter
bottom_disk:T -- B:junctionCenter
junctionCenter:R -- L:junctionRight
top_gateway:B -- T:junctionRight
bottom_gateway:T -- B:junctionRight