Архитектурный репозиторий на базе GitLab и C4 Model для большой компании

architecture c4-model dochub gitlab archops msa modified: 2026-09-07 21:20 · canonical

Архитектурный репозиторий на базе GitLab и C4 Model для большой компании

Спикер: Кирилл Ветчинкин (создатель DocHub, эксперт по Architecture-as-Code)
Мероприятие: Конференция ArchDays 2022
Источник: [YouTube (cTM6M6BbuMs)](https://www.youtube.com/watch?v=cTM6M6BbuMs)

---

📌 Проблематика в крупных микросервисных системах (MSA)

1. Устаревание документации: Архитектурные схемы в Confluence, Visio или Draw.io быстро теряют актуальность, так как оторваны от репозиториев и процесса разработки. 2. Сложность Arch-Review: Архитекторам трудно отслеживать изменения, согласуемые в разных командах, из-за отсутствия единого формата и версионирования. 3. Рассинхрон схемы и деплоя: В рантайме сервисы ходят в незадекларированные базы данных и сторонние API, создавая скрытые зависимости и уязвимости. 4. Дублирование и хаос: Отсутствие единого каталога систем приводит к повторной разработке одинаковых сервисов и несогласованным контрактам.

---

🔑 Ключевые тезисы и архитектурное решение (ArchOps)

1. Архитектура как код (Architecture as Code)

Вся архитектура компании описывается декларативно в текстовых манифестах (YAML / JSON / PlantUML / C4 DSL). Единым источником правды (Single Source of Truth) является Git-репозиторий (GitLab/GitHub). * Изменение архитектуры оформляется через стандартный Merge Request (MR).

2. Модель C4 (Context, Container, Component, Code)

Иерархический подход к структурированию: C1 (Context): Система во внешнем контексте (пользователи, внешние контрагенты, регуляторы). C2 (Containers): Приложения, базы данных, очереди сообщений, шины данных. C3 (Components): Модули, контроллеры, сервисные слои внутри контейнеров. C4 (Code): Классы, интерфейсы, схемы данных. Схемы не рисуются вручную, а генерируются динамически движком (DocHub / PlantUML) из манифестов.

3. CI/CD пайплайны и автоматическая валидация

Линтинг: Автоматическая проверка синтаксиса манифестов, корректности ссылок между узлами, валидности OpenAPI / AsyncAPI контрактов. Arch-Gates при деплое: Валидация деплоймент-манифестов (Helm / K8s / Docker Compose) относительно утвержденной архитектурной модели. Если контейнер запрашивает доступ к незадекларированному ресурсу, пайплайн сборки блокируется.

4. Service Catalog и идентификация

* Стандартизированная иерархическая номенклатура для всех сервисов и контейнеров (например, company.domain.service_name), исключающая дублирование и позволяющая строить сквозные графы зависимостей.