こんにちは。よっしーです(^^)
今日は、Diagramsについてご紹介します。
Diagramsについて
Diagramsを使用すると、Pythonコードでクラウドシステムアーキテクチャを描画できます。
これにより、設計ツールを使用せずに新しいシステムアーキテクチャのプロトタイプを作成することができます。
また、既存のシステムアーキテクチャを説明したり視覚化したりすることもできます。
Diagram as Codeを使用すると、アーキテクチャ図の変更をあらゆるバージョン管理システムで追跡できます。
現在、Diagramsは主要なプロバイダー(AWS、Azure、GCP、Kubernetes、Alibaba Cloud、Oracle Cloudなど)をサポートしています。
さらに、オンプレミスノードやSaaS、主要なプログラミングフレームワークと言語もサポートしています。
ただし、実際のクラウドリソースの制御やクラウド形成、teraformコードの生成は行われません。単にクラウドシステムのアーキテクチャ図を描くだけです。
使用する理由
Diagramsを使用する理由はいくつかあります。以下にいくつかの主な理由を挙げます。
- 視覚化と共有: ダイアグラムは情報を視覚的に表現するための強力なツールです。アーキテクチャやプロセスなどの複雑な概念を図や図表にすることで、情報を分かりやすく整理し、共有することができます。視覚的な表現は、他の人とのコミュニケーションやプロジェクトの説明に役立ちます。
- 複雑なシステムの設計: Diagramsを使用すると、複雑なシステムの設計を効果的に行うことができます。クラウドシステムやネットワークアーキテクチャなど、多くの要素と相互関係がある場合でも、ダイアグラムを使用することで構造を視覚化し、問題を特定しやすくなります。
- プロトタイプ作成とデザイン: Diagramsは、新しいシステムのプロトタイプを作成する際にも有用です。設計ツールを使用せずに、Pythonコードなどを書くことで、システムのアーキテクチャを迅速に試行し、デザインを洗練させることができます。
- バージョン管理と変更の追跡: Diagramsを使用すると、アーキテクチャ図の変更をバージョン管理システムで追跡することができます。アーキテクチャの変更があった場合、新しいダイアグラムを作成するだけでなく、変更の履歴を管理することも可能です。
- サポートされるプラットフォームとツール: Diagramsは、AWS、Azure、GCP、Kubernetes、Alibaba Cloud、Oracle Cloudなど、多くの主要なクラウドプロバイダーをサポートしています。また、オンプレミスノードや主要なプログラミングフレームワークと言語もサポートしています。
これらは、Diagramsを使用する主な理由のいくつかです。ダイアグラムを活用することで、情報の整理と共有、システムの設計とデザイン、変更の追跡などを効果的に行うことができます。
インストール方法
Diagramsを利用するには、Python 3.6 以降が必要です。最初に Python のバージョンを確認してください。 Graphviz を使用して図をレンダリングするため、図を使用するには Graphviz をインストールする必要があります。 graphviz をインストールした後 (または既にインストールしている場合)、diagramsをインストールします。
Pythonのインストール
asdfコマンドでPythonの最新版をインストールします。インストール手順は下記になります。
asdf plugin list all | grep python
asdf plugin add python
asdf list-all python
asdf install python 3.11.3
asdf list python
asdf local python 3.11.3
下記のコマンドでインストール確認をします。
% python --version
Python 3.11.3
Graphvizのインストール
HomebrewでGraphvizをインストールします。インストール手順は下記になります。
brew install graphviz
インストールしたバージョンは下記になります。
% dot --version
dot - graphviz version 8.0.5 (20230430.1635)
diagramsのインストール
pipを使用して、diagramsをインストールします。インストール手順は下記になります。
pip install diagrams
インストールしたバージョンは下記になります。
% pip show diagrams
Name: diagrams
Version: 0.23.3
Summary: Diagram as Code
Home-page: https://diagrams.mingrammer.com
Author: mingrammer
Author-email: mingrammer@gmail.com
License: MIT
Location: /Users/xxx/.asdf/installs/python/3.11.3/lib/python3.11/site-packages
Requires: graphviz, jinja2, typed-ast
Required-by:
使用例
下記内容のファイル(diagram.py)を用意します。
# diagram.py
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
with Diagram("Web Service", show=False):
ELB("lb") >> EC2("web") >> RDS("userdb")
下記のコマンドを実行します。
python diagram.py
下記のファイル(web_service.png)が作成されていれば、成功です。
おわりに
今日は、Diagramsについてご紹介しました。
最初は描画ツールを使用してインフラ構成図を書こうとしましたが、大きさや配置にこだわりすぎて、完成までに時間がかかり、作成するのも更新するのも面倒になっていました。
そこで、コードで記述して、図を作成してくれるツールを探していたところ、Diagramsを見つけました。これで、あまりこだわることなく、インフラ構成図を管理できるのではないかと思いますので、よかったら使ってみてください。自分も使ってみます。
何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント