← Назад к базе знаний

Модель C4 — схемы архитектуры на четырёх уровнях

Модель C4 — схемы архитектуры на четырёх уровнях

Суть. Архитектура описывается четырьмя уровнями приближения, как карта: сначала система и её окружение, потом крупные части, потом внутреннее устройство части, потом код. На каждом уровне своя аудитория — и это главная польза: одна схема перестаёт пытаться объяснить всё сразу всем.

Четыре уровня

Уровень Что показывает Кому адресован
Контекст Система, пользователи, внешние системы Руководству и заказчику
Контейнеры Приложения, службы, хранилища и связи между ними Техническому руководителю, архитектору
Компоненты Внутреннее устройство одного контейнера Команде разработки
Код Классы и связи Редко нужен; генерируется по коду

Почему это важно в продаже

Схема уровня контекста — лучший материал для разговора с руководителем: видно, куда встраивается решение и с чем оно связано. Схема уровня контейнеров — для технического согласования. Попытка показать одну общую схему обеим сторонам обычно заканчивается тем, что не понял никто.

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

Когда в разговоре об архитектуре участвуют люди с разным уровнем погружения: руководитель, аналитик, разработчик, безопасник. Модель решает главную проблему архитектурных схем — они либо слишком общие, чтобы что-то решить, либо слишком подробные, чтобы их читать. Разделение на уровни позволяет каждому остановиться там, где ему достаточно.

Четыре уровня

Уровень Что показывает Кому нужен
Контекст Система, её пользователи и внешние системы вокруг Руководству, заказчику, новым людям в проекте
Контейнеры Из каких запускаемых частей состоит: приложения, базы, очереди Архитекторам, эксплуатации, безопасности
Компоненты Внутреннее устройство одной части Разработчикам этой части
Код Классы и связи Почти никогда: генерируется средой разработки при необходимости

На практике живут первые два уровня. Третий рисуют для сложных частей, четвёртый — почти никогда, и это нормально.

Правила, которые делают схему полезной

  1. Каждый элемент подписан не только названием, но и назначением в одну строку.
  2. Каждая стрелка подписана: что передаётся и по какому протоколу. Стрелка без подписи не несёт информации.
  3. Схема помещается на один экран. Если не помещается — это два разных уровня.
  4. Легенда обязательна: цвета и формы должны означать одно и то же во всех схемах компании.
  5. Схема лежит рядом с кодом и обновляется вместе с ним, а не в отдельной презентации.

Где помогает в коммерческой работе

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

Где ломается

Смешивают уровни. На одной схеме и внешние системы, и классы — читать невозможно.

Не подписывают связи. Стрелка без пояснения «что передаётся и как» бесполезна.

Схемы устаревают. Полезны только два верхних уровня, если их пересматривают; нижние проще генерировать при необходимости.

  • Смешение уровней на одной схеме. Самая частая ошибка: рядом стоят «пользователь» и «класс», и схема перестаёт читаться.
  • Схема устарела. Неактуальная архитектурная схема опаснее её отсутствия: по ней принимают решения.
  • Рисуют ради документа. Схема, которую не используют в обсуждениях, не обновляется.

Частые вопросы

Чем это лучше произвольной схемы в презентации
Общим языком. Когда все схемы компании устроены одинаково, чтение новой не требует расшифровки, и обсуждение начинается сразу с сути.
Нужен ли специальный инструмент
Нет. Модель описывает уровни и правила, а рисовать можно чем угодно, включая текстовые форматы, которые хранятся рядом с кодом.
Как поддерживать актуальность
Привязать обновление схемы уровня контейнеров к изменению состава сервисов и проверять её на разборе архитектурных решений. Без встроенного повода схема стареет за квартал.

Связанное

Материал оказался полезным?