Архитектура и системы
Диаграмма развёртывания онлайн
«Развёртывание» показывает, где именно работает система: в каких сетевых зонах, на каких узлах, сколько реплик и каких версий. Пути подписаны протоколом и портом, переход через границу зоны выделен цветом, а единая точка отказа или новый элемент — акцентом.
Когда использовать
- Документация продакшен-окружения для дежурных и аудита
- Обсуждение отказоустойчивости: где единая точка отказа и как идёт репликация
- Ревью сетевых правил: какие порты открыты между зонами
- Описание нового сервиса перед выкаткой в прод
Как с ней работать в 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?
Нет, одна диаграмма — одно окружение. Для сравнения сделайте две диаграммы.
Чем развёртывание отличается от архитектурной схемы?
Архитектура показывает логические компоненты и связи, развёртывание — физическое размещение: зоны, узлы, реплики, версии и порты.