【Python】Pythonでシステム構成図を書くDiagramsを試してみる (env:Docker Compose)

はじめに

こんにちは、がんがんです。


AWS関連についてサーベイをしているときに、DiagramsというOSSライブラリの記事を見かけました。
dev.classmethod.jp

どうやらシステム構成図をPythonにて構築することが出来るOSSのようです。
以前の記事でシステム構成図を作図しましたが、自分で作るのはなかなか時間がかかります。このライブラリを使うことで簡単になるのであれば使わない手はありません。


そこで、今回は実際にDiagramsを使ってみた備忘録をまとめていきます。

目的

  • Diagramsを試してみる
  • GCPのシステム構成図を作ってみる

コード置き場

今回のコードはこちらに置いてあります。
github.com

Diagramsについて

DiagramsPythonを用いてシステム構成図を書けるOSSライブラリです。AWSGCP、Azureなど様々なクラウドサービスに対応しているようです。GitやDockerなども対応しており嬉しいです。

公式サイトはこちらです。

diagrams.mingrammer.com

実際に試してみる(環境構築)

実際に試してみます。まずはインストールして環境構築を行います。

$ pip install diagrams


Diagramsを使うためにはGraphvizをインストールしておく必要があります。そのため、Diagramsを使うためのDocker環境を構築します(必要のない方は飛ばしてください)。

Dockerfile


docker-compose.yml

実際に試してみる(Hello World)

まずはHello Worldを試してみます。公式のQuickStartはこちらからいけます。
diagrams.mingrammer.com

コード

実際のコードはこんな感じです。

実行結果

実行させてみると、/tmpweb_service.pngが生成されているかと思います。
f:id:gangannikki:20200424142012p:plain

以前作ったシステム構成図をDiagramsで再構成してみる

次に、以前こちらの記事で書いた図をDiagramsを使って作成してみたいと思います。
gangannikki.hatenadiary.jp

コード


実行結果

実行結果はこんな感じです。思ったよりもちゃんと出来てます。
f:id:gangannikki:20200424141826p:plain

おわりに

今回はPythonでシステム構成図を描画するDiagramsというライブラリを触ってみました。
リポジトリを見る限り、日々改良が進められているようなので今後も動向を追っていきたいと思っています。

個人的にはFirebaseのライブラリが早く追加されてほしいです。ひょっとすると初めてのOSS活動の機運かもしれませんが、これは今後の要検討です。