レビュー

Pythonでコードを書いてAWSやKubernetesのシステム構成図を出力できる「Diagrams」


システムの構成を社内で共有したり外部に説明したりする際に、システム構成図を作成した経験のあるエンジニアは多いはず。ダイアグラム作成ソフト「Diagrams」を使うと、AnsibleSubiquityといった「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

この記事のタイトルとURLをコピーする

・関連記事
無料の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 here.