dele

Архитектура и системы

Диаграмма развёртывания онлайн

«Развёртывание» показывает, где именно работает система: в каких сетевых зонах, на каких узлах, сколько реплик и каких версий. Пути подписаны протоколом и портом, переход через границу зоны выделен цветом, а единая точка отказа или новый элемент — акцентом.

Сервис оформления заказа в продакшенеРазвёртывание checkout: CDN на краю, ingress и три реплики приложения в prod, основная база и реплика в зоне данных с потоковой репликацией WAL.EDGEPROD / EU-WEST-1DATAHTTPS:443HTTP:8080TLS:5432WAL STREAMCDNCloudflareedge-cachev1.2PODingressnginx-ingressv1.11PODX3appcheckout-apiv2.4.1sidecar-otelv0.9MANAGEDrds-primarypostgres16.2MANAGEDrds-standbypostgres16.2ЛЕГЕНДААкцент / основнойУзелХранилище / резервУправляемый / CDNМежду зонамиВнутри зоныРепликация
Шаблон «Сервис оформления заказа в продакшене» — развёртывание в Dele

Когда использовать

  • Документация продакшен-окружения для дежурных и аудита
  • Обсуждение отказоустойчивости: где единая точка отказа и как идёт репликация
  • Ревью сетевых правил: какие порты открыты между зонами
  • Описание нового сервиса перед выкаткой в прод

Как с ней работать в Dele

  • Зон (zones) — до 3, слева направо по ходу трафика: edge → prod → data. Каждая зона — реальная граница, а не способ разложить блоки.
  • Узлов (nodes) — до 6. Тег POD, VM, MANAGED или CDN; реплики задаются одним узлом с «x3», а не тремя копиями.
  • Артефакты (artifacts) — всегда с версией, не больше 9 чипов на диаграмму.
  • Путей (paths) — до 8, подпись — протокол и порт («HTTPS:443»). Переход между зонами окрашивается синим, внутри зоны — приглушённо; async: true рисует репликацию пунктиром.
  • Акцентов не больше двух: единая точка отказа или новый узел и, например, путь его репликации.
  • Одна диаграмма — одно окружение. Staging и prod рисуйте отдельно.

Три способа собрать диаграмму

Словами. Откройте ИИ-ассистента в редакторе или подключите своего агента по MCP и опишите задачу, например:

«Нарисуй развёртывание сервиса заказов: CDN в edge, checkout-api v2.4 в трёх подах в prod, Postgres 16 с асинхронной репликой в зоне данных. Акцент на primary-базе.»

В редакторе. Создайте диаграмму из шаблона «Развёртывание», меняйте элементы на холсте и в панели справа — раскладка пересчитывается сама.

Кодом. Диаграмма — это JSON-спецификация. Её можно править в панели «Спецификация», генерировать скриптом и хранить в git.

Спецификация примера (JSON)
{
  "type": "deployment",
  "title": "Сервис оформления заказа в продакшене",
  "description": "Развёртывание checkout: CDN на краю, ingress и три реплики приложения в prod, основная база и реплика в зоне данных с потоковой репликацией WAL.",
  "paper": "dots",
  "zones": [
    {
      "id": "edge",
      "label": "edge"
    },
    {
      "id": "prod",
      "label": "prod / eu-west-1"
    },
    {
      "id": "data",
      "label": "data"
    }
  ],
  "nodes": [
    {
      "id": "cdn",
      "zone": "edge",
      "label": "Cloudflare",
      "tag": "CDN",
      "kind": "managed",
      "artifacts": [
        {
          "name": "edge-cache",
          "version": "v1.2"
        }
      ]
    },
    {
      "id": "ingress",
      "zone": "prod",
      "label": "ingress",
      "tag": "POD",
      "artifacts": [
        {
          "name": "nginx-ingress",
          "version": "v1.11"
        }
      ]
    },
    {
      "id": "app",
      "zone": "prod",
      "label": "app",
      "tag": "POD",
      "replicas": 3,
      "artifacts": [
        {
          "name": "checkout-api",
          "version": "v2.4.1"
        },
        {
          "name": "sidecar-otel",
          "version": "v0.9"
        }
      ]
    },
    {
      "id": "primary",
      "zone": "data",
      "label": "rds-primary",
      "tag": "MANAGED",
      "kind": "store",
      "focal": true,
      "artifacts": [
        {
          "name": "postgres",
          "version": "16.2"
        }
      ]
    },
    {
      "id": "standby",
      "zone": "data",
      "label": "rds-standby",
      "tag": "MANAGED",
      "kind": "store",
      "artifacts": [
        {
          "name": "postgres",
          "version": "16.2"
        }
      ]
    }
  ],
  "paths": [
    {
      "from": "cdn",
      "to": "ingress",
      "label": "HTTPS:443"
    },
    {
      "from": "ingress",
      "to": "app",
      "label": "HTTP:8080"
    },
    {
      "from": "app",
      "to": "primary",
      "label": "TLS:5432"
    },
    {
      "from": "primary",
      "to": "standby",
      "label": "WAL stream",
      "async": true,
      "focal": true
    }
  ]
}

Когда выбрать другой формат

Вопросы о формате

Как показать несколько реплик?

Одним узлом с полем replicas, например «x3». Рисовать каждую реплику отдельно не нужно.

Можно ли на одной схеме показать staging и prod?

Нет, одна диаграмма — одно окружение. Для сравнения сделайте две диаграммы.

Чем развёртывание отличается от архитектурной схемы?

Архитектура показывает логические компоненты и связи, развёртывание — физическое размещение: зоны, узлы, реплики, версии и порты.

Все форматы →

Сущности, поля, кратность

Компоненты, связи, границы доверия

Уровни абстракции и меры контроля