Использование точки Graphviz или Neato для размещения кластеров
Я пытаюсь нарисовать схему развертывания сервисов и серверов на нашем предприятии, используя точку. Для первой итерации я использовал neato, чтобы нарисовать каждый сервис в виде блока, а предотвращение перекрывающихся записей с использованием graphviz и neato, а также разрешение сплайнов позволило мне получить приличный макет с ребрами в качестве зависимостей.
Теперь мне нужно разместить физические серверы внутри каждого из этих блоков. Сначала я сделал каждый сервис подграфом с именем, начинающимся с кластера, а затем разместил узлы, представляющие физические серверы, внутри каждого блока. Опять же, с помощью GraphViz - Как подключить подграфы? Я подделал края, чтобы соединить кластеры, а не узлы. Проблема в том, что это работает только в точке. Когда я использую neato для создания макета, он не понимает, что ребра находятся между кластерами, поэтому он перемещает только тот узел кластера, который я использовал для привязки ребра. В результате ящики кластеров огромны и перекрываются.
Я надеюсь, что в этом есть смысл. Есть ли способ заставить Neato держать узлы в кластере сгруппированными?
1 ответ
Я переосмыслил то, что делал, и вместо того, чтобы использовать подграф для каждого сервиса с подузлами для каждого сервера, я использовал вместо этого формат записи. Каждый узел теперь выглядит как
+------------------------------+
| Service name |
+------------------------------+
| server1 | server2 | server 3 |
+------------------------------+
и их гораздо проще выложить:)