Pythonでコードを書いてAWSやKubernetesのシステム構成図を出力できる「Diagrams」
システムの構成を社内で共有したり外部に説明したりする際に、システム構成図を作成した経験のあるエンジニアは多いはず。ダイアグラム作成ソフト「Diagrams」を使うと、AnsibleやSubiquityといった「Infrastructure as Code(IaC)」に関連するサービスのように、プログラミング言語のPythonでコードを書くことで、クラウドやオンプレミスの構成図を描くことができます。
Diagrams · Diagram as Code
https://diagrams.mingrammer.com/
まずはDiagramsの動作に必要なパッケージをインストールします。今回Diagramsのインストールに利用するのはUbuntu 18.04です。
sudo apt install -y python3 python3-pip graphviz
続いてDiagramsをインストール。
pip3 install diagrams
これでDiagramsがPythonで使えるようになったので、さっそくコードを書いていきます。DiagramsはAWSやGCP、Kubernetesなどの構成図を描くことが可能。今回はKubernetesの構成図を描くため、必要なモジュールをインポートします。
with構文内でDiargamクラスのインスタンスを作成することで構成図を出力するが可能。試しに下記のようにコードを書いてみました。
書いたコードを実行すると、実行時のカレントディレクトリ下にPNGファイルが出力されました。
出力されたPNGファイルはこんな感じ。
複数の図を矢印で結ぶには「>>」と「<<」を利用します。
コードを実行すると、下の画像のように矢印が出力されます。
「>>」や「<<」の代わりに「-」を用いれば、指向性のないバーを出力することが可能。
出力するファイル名や拡張子、構成図の方向はインスタンス変数「filename」「outformat」「direction」に値を指定することで設定することができます。
例えば「direction」変数に「TB」を指定すると以下のような画像が出力されます。「TB」は上から下、「BT」は下から上、「LR]は左から右、「RL」は右から左に図形が配置されます。
矢印やバーの色や形状もカスタマイズすることができます。Edgeクラスをインポートし、「>>」や「<<」の間に色や形状を記述したEdgeインスタンスを作成すると……
下の画像のように矢印やバーの色や形状を変更することができます。
図をひとまとめに表示したい場合は、Clusterクラスをインポートして、Diagramインスタンスを記述したwithブロック内でClusterインスタンスを作成します。
コードを実行するとこんな画像が出力されました。
同じ構成を2つ描く場合も……
コードをコピペするだけなので簡単です。
使用できるアイコンは以下から確認することができます。
Doc · Diagrams
https://diagrams.mingrammer.com/docs/nodes/onprem
・関連記事
無料のRPGをプレイするだけで未経験者でもプログラミングを習得可能な「コードクロニクル」でPythonをマスターしてみた - GIGAZINE
Googleの徹底的なシステム障害への対応「SRE」の中身とは? - GIGAZINE
プログラミングを勉強するには「言語能力」と「問題解決能力」も重要 - GIGAZINE
GoogleのGmailやクラウドなどのサービスを支える技術「Borg」の統計情報が公開 - GIGAZINE
漢文風プログラミング言語「文言」を読み解いてみた - GIGAZINE
・関連コンテンツ
in レビュー, ソフトウェア, Posted by darkhorse_log
You can read the machine translated English article `` Diagrams '' that you can writ….