Перейти к основному содержимому

C4

Этот документ был подготовлен при помощи ИИ

Текст может содержать неточности, устаревшие данные или технические ошибки. Пожалуйста, проверяйте критически важную информацию перед использованием.

C4 описывает программную систему на четырёх уровнях детализации: система среди пользователей и соседних систем, контейнеры, из которых она собрана, компоненты внутри контейнера и инфраструктура, где всё это работает.

Ландшафт систем C4: пользователь, проектируемая система и соседняя система

Создайте модель

Создайте модель Online Store типа Ландшафт программных систем (C4) и откройте её System Landscape Diagram.

Корневых типов у модели C4 четыре: ландшафт систем, программная система, контейнер и среда развёртывания. Корень задаёт границы модели. Начать можно с любого уровня, отдельная модель на каждый уровень не нужна.

Контекст

Добавьте два элемента PersonCustomer и Support Agent — и проектируемую систему как Software System Online Store.

Соседние системы добавьте тоже как Software System: Payment Gateway, Warehouse System, Email Service. Включите каждой признак existing, чтобы они рисовались серым.

Связь в C4 одна. Проведите её от источника к цели и назовите по действию: Browses and orders, Takes payment, Sends confirmations. У связи есть и необязательная технология, например HTTPS.

Контейнеры

Выделите Online Store и создайте на нём Software System Diagram — она раскрывает устройство этой системы.

Добавьте элементы Container и задайте каждому technology: Storefront (React), Admin Console (React), Store API (Spring Boot), Order Database и Catalog Database (PostgreSQL). Двум хранилищам задайте kind Database — они будут нарисованы цилиндрами.

Проведите связи между контейнерами и одну связь наружу — от Store API к Payment Gateway. Это тот же элемент, что и на контекстной диаграмме, показан он здесь потому, что вызов происходит на этом уровне.

Компоненты

Выделите Store API и создайте на нём Container Diagram. Добавьте элементы Component: Catalog Controller, Cart Service, Order Service, Payment Adapter, Order Repository. Последние три объедините в Component Group Checkout — группа рисует рамку и в модели ничего не означает.

Развёртывание

Вернитесь к ландшафту, добавьте Deployment Environment Production и создайте его Deployment Environment Diagram.

Вложите друг в друга элементы Deployment Node: AWS eu-central-1, а внутри него Customer Browser, EKS Cluster и RDS.

В кластере создайте Infrastructure Node Ingress Controller и элементы Container Instance для Store API и Admin Console. Экземпляр Storefront поместите в браузер, экземпляры обеих баз данных — в RDS. Экземпляры самостоятельны: два экземпляра Store API означают, что он работает в паре.