🔵 C4 / Container - пример микросервисной архитектуры #GreenChargeGA 🔵
Уровень C4 / Container показывает независимые по коду приложения в системе — так называемые контейнеры [к].
Что включает схема на этом уровне:
✔️ Пользователи
✔️ Внешние системы
✔️ Мобильные, веб- и десктоп приложения [к]
✔️ Микросервисы [к]
✔️ API Gateway (маршрутизатор API-запросов) [к]
✔️ БД и ФХ [к]
✔️ API для взаимодействия сервисов
✔️ Брокеры для асинхронного обмена [к]
В микросервисной архитектуре этих контейнеров может быть очень много, и без хорошей визуализации легко потеряться 🤪
📌 Ранее я показывала архитектуру GreenChargeGA в виде "квадратиков и стрелочек", теперь, в прикреплённой к посту схеме, используется нотация C4 > уровень Container.
Что добавила C4:
✅ Чёткие указания на используемые API и протоколы
✅ Указание языков программирования и фреймворков всех приложений
✅ Технологии БД и файловых хранилищ
Теперь на диаграмме есть вся необходимая информация, чтобы понять архитектуру проекта без чтения документации.
Недостатки показанной архитектуры, которые будем дорабатывать:
❌ Нет связи от Firebase к фронтам, куда доставляются уведомления
❌ Синхронизация всего через один API Gateway? Плохо масштабируемая и уязвимая идея
❌ Всё синхронно внутри? Не надёжно 🥲 Надо ещё брокеров
❌ Не показаны WebHooks от платежных систем
Подумайте уже сейчас, как исправить эти недостатки на схеме 😉
💡Лайфхак
Для простоты восприятия можно объединить все микросервисы и инфраструктуру в один контейнер «Backend», а детали вынести на уровень C4/Component.
Но это будет противоречить нотации.
💡На практике
Команды часто адаптируют C4 под свои нужды. Я же рекомендую придерживаться здравого смысла, прозрачности и принципа "понятно с первого взгляда".
📚 Связанные материалы:
Нотация C4 и документация по ней
C4 / Context для проекта GreenChargeGA (предыдущий уровень)
Изучайте и сохраняйте! 💙
Это мощный и наглядный пример, к которому точно захочется вернуться, когда будете продумывать или описывать архитектуру в своих проектах.
#АрхитектураGA
Post #2473
5.89K