Диаграмма контейнеров

Тема дорожной карты · Software Architecture

C4 Уровень 2 — Container Diagram представляет собой ключевой инструмент для представления блоков системы и демонстрации основных деплоябельных/запускаемых единиц, таких как web-приложение, mobile-приложение, API-сервер, БД, очередь сообщений и другие. В контексте C4 диаграммы, термин 'container' охватывает всё, что хостит код или данные, а не только контейнеры Docker. Каждый контейнер имеет подпись с выбранной технологией, что делает эту диаграмму не только полезной, но и необходимой для инженеров, которые входят в проект.

Как это работает

Для создания диаграммы контейнеров, замените единый блок системы из Уровня 1 набором container-блоков внутри границы системы. Каждый container-блок должен быть подписан: имя (Web App, API Service, Database), технология (React, Node.js, PostgreSQL) и одно-предложение цель. Стрелки между контейнерами используются для показа протоколов (HTTPS, gRPC, SQL) и основных потоков данных. Важно держать диаграмму на одной странице; если количество контейнеров превышает 20, рекомендуется разделить её на несколько диаграмм, каждая из которых будет представлять подсистему.

Когда применять

Container-диаграммы являются основным инструментом в архитектурной документации. Они должны поддерживаться для каждой системы, и обновляться при добавлении или удалении деплоябельной единицы, или при изменении основных протоколов интеграции. Новые инженеры должны ознакомиться с этой диаграммой до того, как они начнут работать с кодом.

Типичные ошибки

(1) Слишком мало контейнеров — схлопывание 'web + backend + db' в один блок ради простоты; теряет ценность показа выборов технологий и протоколов. (2) Слишком много контейнеров — каждый микро-компонент показан; диаграмма нечитаема. Целитесь в 5-15 контейнеров; группируйте если больше. (3) Нет меток технологий — показ 'Database' без 'PostgreSQL'; читатели не могут принимать технические решения без этого.

Связанные понятия

Полезные ресурсы