У каждой команды есть та самая архитектурная диаграмма. В день создания она была прекрасна, а примерно через неделю стала неверной. Сервис переехал, появился кэш, добавилась очередь, и никому не хотелось снова открывать редактор и двигать блоки.
Так диаграмма тихо гниёт, а новые инженеры изучают систему, читая YAML. Хорошая новость: этого же YAML более чем достаточно, чтобы нарисовать картинку за вас. LetDraw читает ваш файл Compose или Kubernetes и раскладывает архитектуру, так что диаграмма берётся из источника истины, а не уплывает от него.
Визуализация Docker Compose за десять секунд
Откройте диалог «Создать из кода», вставьте файл и получите разложенную диаграмму из настоящих редактируемых фигур. Никакого перетаскивания блоков и ручного соединения стрелками. Вот файл Compose, который узнают многие:
services: web: image: nginx depends_on: [api] api: image: app:latest depends_on: [db, redis] db: image: postgres:16 redis: image: redis:7
Вставьте это, и LetDraw превратит его вот в такую схему:
База данных стала цилиндром, кэш получил свою иконку, а связи depends_on превратились в стрелки, которые обходят ваши блоки, а не пересекают их. Это диаграмма, а не скриншот конфига.
Что происходит на самом деле
Диалог делает три вещи, о которых стоит сказать:
- Сам определяет формат. Не нужно выбирать «Compose» или «Kubernetes» в меню. Вставьте файл, и LetDraw распознает, что это.
- Группирует связанные части. Манифесты Kubernetes группируются так, чтобы раскладка отражала ваши пространства имён, а не одну плоскую кашу узлов.
- Ставит нужные иконки. Сервисы, базы данных и очереди получают узнаваемые иконки продуктов, и диаграмма читается с одного взгляда.
Теперь диаграмма берётся из источника истины, поэтому она верна по построению, а не благодаря дисциплине.
Не только Compose: архитектурная диаграмма из YAML и не только
Тот же диалог принимает гораздо больше одного формата, и в этом весь смысл. Если что-то описывает инфраструктуру или систему, скорее всего, это рисуется:
- манифесты Kubernetes, сгруппированные по пространствам имён
- Terraform и Helm для инфраструктуры и релизов
- Graphviz DOT, SQL DDL, спецификация OpenAPI или даже git log
- Mermaid и D2, если вы уже храните диаграммы как код
А затем сделайте её своей
Авто-раскладка проходит 90 процентов пути, а ценность в последних 10 процентах. Поскольку результат состоит из настоящих фигур, вы можете:
- Сдвинуть блок, добавить заметку или выделить рискованный путь
- Сгруппировать части, принадлежащие одной команде или одному ограниченному контексту
- Экспортировать в PNG, SVG или PDF для документа или скопировать прямо в буфер обмена
- Превратить рисунок обратно в Mermaid или D2, когда снова нужен код
А если хотите, чтобы эта картинка жила в документации, вставьте сниппет встраивания в README или вики, и она останется живым представлением только для чтения. Больше никаких устаревших PNG, которые кто-то должен не забыть переэкспортировать.
Почему это важно для DevOps
Архитектурные диаграммы должны быть общей ментальной моделью. Как только они отстают от реальности, они становятся ловушкой: учат новичков неправильному и дают ревьюерам ложную уверенность. Генерация из файлов, которые вы и так поддерживаете, закрывает этот разрыв. Диаграмму дёшево сделать, значит, её дёшево держать актуальной, а актуальная диаграмма: единственная, которую стоит иметь.
Вставьте ваш docker-compose.yml и посмотрите, как стек рисует себя сам. Это занимает примерно столько же, сколько чтение этого предложения.