« ^ »

blog.symdon.infoのシステム構成

所要時間: 約 2分

現時点でのblog.symdon.infoのシステム構成図を作成した。

https://res.cloudinary.com/symdon/image/upload/v1643446455/blog.symdon.info/1643446358/architecture_sws4jj.png

画像のホスティングには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を使用して作図している。