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

Создайте модель
Создайте модель Online Store типа Ландшафт программных систем (C4) и
откройте её System Landscape Diagram.
Корневых типов у модели C4 четыре: ландшафт систем, программная система, контейнер и среда развёртывания. Корень задаёт границы модели. Начать можно с любого уровня, отдельная модель на каждый уровень не нужна.
Контекст
Добавьте два элемента Person — Customer и 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 означают, что он работает в паре.