[2/2] The C4 Model - Misconceptions, Misuses & Mistakes - Simon Brown - GOTO 2024 (Рубрика Architect)
Заканчивая обзор интересного выступления от Simon Brown, я хотел бы рассказать про оставшиеся мифы и советы, которые давал Саймон своим слушателям
- Message-driven architecture и как ее отображать в C4 Model - автор рекомендует отображать не центральный Kafka брокер как контейнер, а отображать отдельные топики как containers или просто указывать их текстом на стрелках, что соединяют контейнеры с разными сервисами - Общие библиотеки и компоненты - Общие библиотеки и компоненты часто путают, но их следует представлять по-разному. Общие библиотеки лучше изображать как компоненты C4, а не как самостоятельные приложения. - Микросервисы - микросервисы часто неправильно моделируют как контейнеры с API и схемами баз данных. Микросервисы следует моделировать как программные системы, контейнеры или группировки контейнеров. Важно понимать, что микросервисы могут быть представлены как группа контейнеров или как отдельный контейнер. - Закон Конвея и микросервисы - по мере роста компании и увеличения количества команд, микросервисы могут стать более сложными. Важно учитывать закон Конвея и создавать микросервисы таким образом, чтобы они были масштабируемыми и интегрируемыми. - Контекстная диаграмма и разделение сервисов - команда создает веб-приложение, но сервисы передаются отдельным командам. Контекстная диаграмма теперь показывает сервисы как отдельные программные системы. Важно не видеть детали внутренней реализации сервисов, а использовать API. - Масштабирование и диаграммы - при масштабирования C4 для больших архитектур появляются проблемы. Решение: создание отдельных диаграмм для каждого сервиса. Инструменты, такие как Visio, могут усложнить процесс создания диаграмм, но у C4 Model есть Structurizr - Модели как код и структура диаграмм - при использование моделей как кода для создания диаграмм мы получаем преимущества: разделение модели на части и предоставление нескольких представлений. Недостатки: упущение общей картины.
- Интерактивные диаграммы и инструменты - интерактивные диаграммы помогают изучать сервисы и компоненты. Можно добавлять метаданные и взаимодействовать с объектами.
- Рекомендации по созданию диаграмм - Саймон предлагает фокусироваться на одной программной системе, избегать показа внешних контейнеров, чтобы избежать зависимости от деталей чужой системы. В качестве примера он показывапет использование общей базы данных как границы между системами.
В конце Саймон напоминает, что C4 Model подходит для создания иерархических абстракций и диаграмм. C4 Model независима от нотаций и инструментов.
#Software #Architect #SystemDesign #SoftwareArchitecture #Processes