現時点でのblog.symdon.infoのシステム構成図を作成した。
画像のホスティングにはCloudinaryというサービスを利用している。画像をGitに登録したくなかったのと、Build時に毎回画像のアップロードが行われることを避けるため、事前に手動でCloudinaryにアップロードしている。
ソース
構成図はditaaで記述した。 ditaaの良いところはAscii ArtのためGitなどのバージョン管理と親和性が高く、 しかもAscii Artであるため記法自体が図となるところだ。 PlantUML、Graphviz、その他の図形描画のツールと比較して、 覚える必要のある記法が圧倒的に少ない。
反対にデメリットとしては、マルチバイト文字の処理に問題がある。 これは日本語圏内にいる者としては致命的だ。 一応ワークアラウンドする方法があり1、 それを適応したdiitaを用意している2。 またAscii Artを作り慣れていない人にとっては作図しにくいかもしれない3。
以下はソースである。
+-----------+
| |
| Audience |
| |
+--+--------+
| HTTPS access
|
| +------------------+ +-------------------------------------------------------+
| | | | |
| | Cloudflare | | Netlify |
| | blog.symdon.info | | |
+--->+ (SSL/TLS) | | +---------------------+ +------------------+ |
| | | | | | | | |
| | +----------->+ Static file hosting | | Build | |
| | | | | Netlify domain | | | |
| +------------------+ | | (SSL/TLS) | | +------------+ | |
| | | | | | | | |
| | | | | | Hugo | | |
| +--------------------+ | | | | | | | |
| | | | +---------+-----------+ | | go-org | | |
| | Cloudinary | | ^ | | | | |
| | Cloudinary domain | | | | +------------+ | |
+--->+ (SSL/TLS) | | +--------------+ | |
| | | Upload generated files | | |
+------+-------------+ | +--------+---------+ |
^ | ^ |
| +----------------------------------------|--------------+
| |
| Upload image files |
| | Push Hook
+------+-----------------------+ |
| | +----+--------+
| Editor's machine | | Github |
| | | |
| +----------------------+ | | |
| | | | | |
| | Emacs | | Git push | +-------+ |
| | | +------------------------------->+ Git | |
| | +-------------+ | | | +-------+ |
| | | Org-mode | | | | |
| | +-------------+ | | +-------------+
| | | |
| +----------------------+ |
| |
| +--------+ |
| | | |
| | Ditaa | |
| | | |
| +--------+ |
| |
+------------------------------+
脚注
1
マルチバイト文字の処理の問題については「ditaaの図の中に日本語を含めても図が崩れないようにする 」を参照。
2
マルチバイト文字の処理の問題を無理矢理回避したdiita。 https://github.com/TakesxiSximada/ditaa
3
私はEmacsのartist-modeを使用して作図している。