A co-worker recently discovered a fun project called diagrams that allows you to create diagrams from code. Documentation and how to install diagrams is available at https://diagrams.mingrammer.com. The image you see above was generated with some simple code. The code used to generate the graph looks like this:
from diagrams import Diagram, Cluster
from diagrams.oci.edge import Cdn
from diagrams.onprem.network import Nginx
from diagrams.onprem.compute import Server
from diagrams.onprem.database import Mariadb
from diagrams.onprem.inmemory import Memcached
from diagrams.onprem.client import Users
with Diagram("dustinrue.com", show=False):
cloudflare = Cdn("CloudFlare")
users = Users("users")
with Cluster("web server"):
nginx = Nginx("nginx")
php = Server("php")
with Cluster("database server"):
mariadb = Mariadb("mariadb")
memcached = Memcached("memcached")
users - cloudflare
cloudflare - nginx
nginx - php
php - mariadb
php - memcached
Using diagrams is an easy way to quickly create and track changes to diagrams.