DevOps

Диаграмма Docker Compose: от docker-compose.yml к понятной архитектуре за секунды

Никому не нравится перерисовывать свой стек вручную при каждом изменении. Вот как вставить файл и получить диаграмму Docker Compose, которая действительно актуальна.

У каждой команды есть та самая архитектурная диаграмма. В день создания она была прекрасна, а примерно через неделю стала неверной. Сервис переехал, появился кэш, добавилась очередь, и никому не хотелось снова открывать редактор и двигать блоки.

Так диаграмма тихо гниёт, а новые инженеры изучают систему, читая YAML. Хорошая новость: этого же YAML более чем достаточно, чтобы нарисовать картинку за вас. LetDraw читает ваш файл Compose или Kubernetes и раскладывает архитектуру, так что диаграмма берётся из источника истины, а не уплывает от него.

Визуализация Docker Compose за десять секунд

Откройте диалог «Создать из кода», вставьте файл и получите разложенную диаграмму из настоящих редактируемых фигур. Никакого перетаскивания блоков и ручного соединения стрелками. Вот файл Compose, который узнают многие:

docker-compose.yml
services:
  web:
    image: nginx
    depends_on: [api]
  api:
    image: app:latest
    depends_on: [db, redis]
  db:
    image: postgres:16
  redis:
    image: redis:7

Вставьте это, и LetDraw превратит его вот в такую схему:

web api postgres redis
Четыре сервиса, разложенные и с иконками, каждый из четырёх строк YAML.

База данных стала цилиндром, кэш получил свою иконку, а связи depends_on превратились в стрелки, которые обходят ваши блоки, а не пересекают их. Это диаграмма, а не скриншот конфига.

Что происходит на самом деле

Диалог делает три вещи, о которых стоит сказать:

  • Сам определяет формат. Не нужно выбирать «Compose» или «Kubernetes» в меню. Вставьте файл, и LetDraw распознает, что это.
  • Группирует связанные части. Манифесты Kubernetes группируются так, чтобы раскладка отражала ваши пространства имён, а не одну плоскую кашу узлов.
  • Ставит нужные иконки. Сервисы, базы данных и очереди получают узнаваемые иконки продуктов, и диаграмма читается с одного взгляда.

Теперь диаграмма берётся из источника истины, поэтому она верна по построению, а не благодаря дисциплине.

Не только Compose: архитектурная диаграмма из YAML и не только

Тот же диалог принимает гораздо больше одного формата, и в этом весь смысл. Если что-то описывает инфраструктуру или систему, скорее всего, это рисуется:

  • манифесты Kubernetes, сгруппированные по пространствам имён
  • Terraform и Helm для инфраструктуры и релизов
  • Graphviz DOT, SQL DDL, спецификация OpenAPI или даже git log
  • Mermaid и D2, если вы уже храните диаграммы как код
Совет. Храните диаграмму в репозитории в виде Mermaid или D2 и перегенерируйте визуал при каждом изменении. Вы получаете проверяемость кода и картинку, которую коллеги действительно откроют.

А затем сделайте её своей

Авто-раскладка проходит 90 процентов пути, а ценность в последних 10 процентах. Поскольку результат состоит из настоящих фигур, вы можете:

  • Сдвинуть блок, добавить заметку или выделить рискованный путь
  • Сгруппировать части, принадлежащие одной команде или одному ограниченному контексту
  • Экспортировать в PNG, SVG или PDF для документа или скопировать прямо в буфер обмена
  • Превратить рисунок обратно в Mermaid или D2, когда снова нужен код

А если хотите, чтобы эта картинка жила в документации, вставьте сниппет встраивания в README или вики, и она останется живым представлением только для чтения. Больше никаких устаревших PNG, которые кто-то должен не забыть переэкспортировать.

Почему это важно для DevOps

Архитектурные диаграммы должны быть общей ментальной моделью. Как только они отстают от реальности, они становятся ловушкой: учат новичков неправильному и дают ревьюерам ложную уверенность. Генерация из файлов, которые вы и так поддерживаете, закрывает этот разрыв. Диаграмму дёшево сделать, значит, её дёшево держать актуальной, а актуальная диаграмма: единственная, которую стоит иметь.

Вставьте ваш docker-compose.yml и посмотрите, как стек рисует себя сам. Это занимает примерно столько же, сколько чтение этого предложения.

Нарисуйте архитектуру из файла, который у вас уже есть

Откройте холст, вставьте конфиг Compose или Kubernetes и получите редактируемую диаграмму за секунды.

Открыть LetDraw бесплатно