Привет, Хабр! Меня зовут Максим Рогоза, и последние 7 лет я работаю корпоративным архитектором в крупнейших компаниях России. В настоящее время я занимаюсь стратегическим IT‑консалтингом в компании Аксеникс, где помогаю крупным организациям выстраивать эффективную IT‑архитектуру. Недавно я рассказывал вам о подходе Architecture as Code с использованием PlantUML. Сегодня хочу поделиться опытом хранения моделей ArchiMate в системе контроля версий Git и автоматизации рабочих процессов для совместной работы над архитектурой предприятия.
Почему Git для ArchiMate моделей?
Традиционный подход к моделированию архитектуры предприятия часто предполагает работу с монолитными файлами, которые сложно поддаются версионированию. Это приводит к проблемам при совместной работе: конфликты версий, сложности при слиянии изменений и отсутствие прозрачной истории модификаций.
Использование Git для хранения моделей ArchiMate решает эти проблемы:
-
Версионирование — полная история изменений модели
-
Совместная работа — параллельная работа команды архитекторов над разными частями модели
-
Ветвление — возможность экспериментировать с архитектурными решениями в отдельных ветках
-
Контроль изменений — ясный процесс ревью и утверждения изменений через pull request
-
Автоматизация — интеграция с процессами CI/CD для публикации документации
Инструментарий: Archi и coArchi
Archi — это один из наиболее популярных и эффективных инструментов для работы с моделями ArchiMate. Это открытое бесплатное программное обеспечение, которое позволяет создавать, редактировать и визуализировать модели архитектуры предприятия в нотации ArchiMate. Однако у него есть одно существенное ограничение — он изначально разработан как однопользовательский инструмент, что затрудняет совместную работу команды архитекторов. К счастью, этот недостаток можно исправить с помощью дополнительных инструментов.
Чтобы интегрировать Archi с Git, необходим специальный плагин — coArchi, который позволяет хранить модели в формате, удобном для системы контроля версий.
Установка и настройка Archi и coArchi
Шаг 1: Установка Archi
-
Скачайте последнюю версию Archi с официального сайта
-
Установите программу, следуя инструкциям установщика
-
Запустите Archi и создайте новую модель или откройте существующую
Шаг 2: Установка плагина coArchi
Установка coArchi производится через встроенный менеджер плагинов Archi:
-
В Archi выберите меню Help → Manage Plug‑ins
-
Нажмите кнопку Add… в диалоговом окне
-
Введите URL репозитория плагинов: https://www.archimatetool.com/plugins
-
Выберите плагин Collaboration Plugin for Git и установите его
-
После установки перезапустите Archi
Шаг 3: Настройка репозитория Git
После перезапуска Archi вы увидите новое меню Collaboration. Теперь необходимо настроить подключение к Git‑репозиторию:
-
Создайте репозиторий на GitHub, GitLab или в другом Git‑сервисе
-
В Archi выберите Collaboration → Import Model from Collaboration File
-
Укажите URL вашего Git‑репозитория и учетные данные
-
Выберите ветку (обычно
main
или master) -
Нажмите Finish
После этого плагин клонирует репозиторий и импортирует модель в Archi.
Совместная работа над моделями с coArchi
Плагин coArchi позволяет организовать совместную работу над моделями ArchiMate, несмотря на однопользовательскую природу Archi. Этот подход особенно эффективен для небольших и средних команд.
По моему опыту, с комфортом совместно работать над одной моделью с использованием coArchi могут до 5–7 архитекторов. При большем количестве участников возрастает вероятность конфликтов при слиянии изменений, особенно если несколько человек одновременно работают над одними и теми же частями модели.
Стоит отметить, что для эффективной совместной работы важно установить определенные правила и соглашения внутри команды:
-
Разделение ответственности за различные домены архитектуры
-
Частые коммиты с небольшими изменениями
-
Регулярная синхронизация с репозиторием
-
Подробные комментарии к коммитам
-
Использование веток для значительных изменений
Масштабирование доступа к архитектурным моделям
Если задуматься, большинство людей, которым нужен доступ к моделям архитектуры, используют Archi только для просмотра. Это касается руководителей, менеджеров проектов, разработчиков и других заинтересованных сторон. Требовать от всех установки Archi и настройки плагина coArchi только для просмотра моделей — неэффективный подход.
К счастью, существует гораздо более простой способ обеспечить широкий доступ к архитектурным моделям — генерация и публикация HTML‑отчетов. Archi предоставляет встроенные функции для создания интерактивных HTML‑отчетов, которые затем можно опубликовать в корпоративной сети или интернете.
HTML‑отчет можно создать через пользовательский интерфейс Archi (File → Report → HTML…) или с помощью командной строки:
Archi -application com.archimatetool.commandline.app \ -consoleLog -nosplash \ -loadModel "model.archimate" \ -html.createReport "output_directory"
Сгенерированный отчет можно разместить на любом веб‑сервере, в том числе на внутреннем корпоративном портале, в GitHub Pages или любом другом хостинге статических сайтов. Таким образом, любой сотрудник организации получит доступ к актуальной архитектурной документации через обычный веб‑браузер без необходимости установки дополнительного ПО.
Рабочий процесс с Git и ArchiMate
Для эффективной работы с ArchiMate моделями в Git рекомендую следующий рабочий процесс:
-
Pull — В начале рабочего дня выполните Collaboration → Pull для получения последних изменений
-
Редактирование — Работайте над моделью как обычно в интерфейсе Archi
-
Коммит — После внесения изменений выполните Collaboration → Commit Changes с подробным описанием изменений
-
Push — Отправьте изменения в репозиторий через Collaboration → Push
Работа с ветками
Для более сложных изменений рекомендуется использовать ветки:
-
Создайте новую ветку: Collaboration → Switch Branch → New Branch
-
Внесите необходимые изменения в модель
-
Зафиксируйте изменения: Collaboration → Commit Changes
-
Отправьте ветку в удаленный репозиторий: Collaboration → Push
-
Создайте Pull Request через интерфейс GitHub/GitLab
-
После ревью и утверждения, выполните слияние ветки
Автоматизация публикации HTML‑отчетов
Теперь, когда мы знаем о возможности создания HTML‑отчетов, следующий логичный шаг — автоматизировать этот процесс. Одним из главных преимуществ хранения ArchiMate моделей в Git является возможность настройки непрерывной интеграции для автоматического обновления публикуемой документации при каждом изменении модели.
Такой подход обеспечивает:
-
Актуальность документации — отчеты всегда соответствуют последней версии модели
-
Экономию времени — нет необходимости вручную создавать и публиковать отчеты
-
Прозрачность — все заинтересованные стороны всегда имеют доступ к текущему состоянию архитектуры
Рассмотрим, как настроить автоматическую генерацию HTML‑отчетов при изменении модели.
Настройка Git‑хуков для генерации отчетов
-
Создайте скрипт generate‑report.sh в корне вашего репозитория:
#!/bin/bash # Путь к исполняемому файлу Archi ARCHI_EXECUTABLE="/path/to/Archi/Archi" # Путь к модели MODEL_FILE="model/model.archimate" # Папка для HTML-отчета REPORT_DIR="docs" # Генерация отчета $ARCHI_EXECUTABLE -application com.archimatetool.commandline.app \ -consoleLog -nosplash \ -loadModel "$MODEL_FILE" \ -html.createReport "$REPORT_DIR" # Добавление отчета в git git add "$REPORT_DIR" git commit -m "Автоматическая генерация HTML-отчета" Создайте файл .git/hooks/post-commit и сделайте его исполняемым: bash #!/bin/bash ./generate-report.sh
2. Создайте файл .git/hooks/post‑commit
и сделайте его исполняемым:
#!/bin/bash ./generate-report.sh
3. Сделайте хук исполняемым: chmod +x.git/hooks/post‑commit
Настройка CI/CD для публикации отчетов
Для более надежного решения можно настроить автоматическую публикацию отчетов через CI/CD. Например, для GitHub Actions создайте файл .github/workflows/publish‑report.yml
:
name: Publish Architecture Report on: push: branches: [ main ] paths: - 'model/**' jobs: generate-report: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Java uses: actions/setup-java@v2 with: java-version: '11' distribution: 'adopt' - name: Download Archi run: | wget https://www.archimatetool.com/downloads/archi/Archi-Linux64-$ARCHI_VERSION.tgz tar -xzf Archi-Linux64-$ARCHI_VERSION.tgz env: ARCHI_VERSION: 4.9.1 - name: Generate HTML Report run: | ./Archi/Archi -application com.archimatetool.commandline.app \ -consoleLog -nosplash \ -loadModel "model/model.archimate" \ -html.createReport "docs" - name: Deploy to GitHub Pages uses: JamesIves/github-pages-deploy-action@4.1.4 with: branch: gh-pages folder: docs
Возможности HTML‑отчета
HTML‑отчет, генерируемый из моделей Archi, предоставляет мощные возможности для просмотра и анализа архитектуры:
-
Интерактивная навигация — удобное дерево элементов модели для быстрого перехода
-
Поиск — возможность искать элементы по названию и описанию
-
Просмотр связей — визуализация всех входящих и исходящих связей элементов
-
Экспорт диаграмм — сохранение диаграмм в различных форматах
-
Фильтрация — отображение только нужных слоев архитектуры
-
Совместное использование — возможность делиться ссылками на конкретные элементы и диаграммы
Главное преимущество — отчет доступен через обычный веб‑браузер, что позволяет предоставить доступ к актуальной архитектурной документации всем заинтересованным сторонам без необходимости установки специализированного ПО.
Заключение
Architecture as Git — это подход, который значительно упрощает совместную работу над архитектурой предприятия, обеспечивает надежное версионирование моделей и позволяет интегрировать архитектурную документацию в современные DevOps‑практики.
Несмотря на некоторый порог входа и необходимость освоения дополнительных инструментов, преимущества такого подхода делают его незаменимым для современных архитектурных практик, особенно в крупных организациях с распределенными командами и сложной, постоянно развивающейся архитектурой.
В будущих статьях я планирую рассказать о продвинутых техниках работы с ArchiMate моделями, включая интеграцию с JIRA, автоматическую валидацию моделей и генерацию отчетов о соответствии архитектурным принципам.
Продолжим разбираться с ArchiMate на открытом уроке «Риcуем модель ArchiMate в бесплатном инструменте Archi», который состоится 20 марта.
На занятии мы рассмотрим возможности инструмента Archi и ключевые объекты и диаграммы, которые применяются на практике. Если интересно, записывайтесь бесплатно на странице курса Otus «Archimate».
ссылка на оригинал статьи https://habr.com/ru/articles/892438/
Добавить комментарий