В этой статье я дам краткую вводную, что такое Archi и ArchiMate. Расскажу о коллективной работе с Archi используя расширение coArchi, после чего предоставлю контейнер позволяющий автоматизировать работу по созданию HTML и PDF документов с ArchiMate моделями. Завершим же, созданием своего GitHub Action, настроим GitHub и GitLab пайплайн с последующей публикацией модели в GitHub/GitLab Pages.
В чем основная проблематика и причина появления этой автоматизации? Логично утверждать, что любая автоматика экономит время и выполняет рутину за вас, но основной причиной появления данного инструмента и статьи, является простота публикации моделей (схем). Я столкнулся с тем, что большинству нужно просто посмотреть или продемонстрировать схему, но ни кто не хочет разбираться с установкой дополнительного ПО, подключать к нему плагины, настраивать подключение к git репозиторию. Web-страница с актуальной и интерактивной моделью — это то, что нужно среднестатистическому менеджеру, да и архитектора не побеспокоят просьбой сделать скриншот текущей модели.
Основы ArchiMate
Для тех кому все подробности не нужны, резюмирую: используя этот GitHub Action или этот контейнер в результате получим такой результат.
Что такое Archi и ArchiMate
Набор кроссплатформенных инструментов моделирования Archi предназначен для архитекторов и разработчиков моделей всех уровней. Archi написан на Java и распространяются под лицензией MIT, репозиторий проекта доступен на GitHub. Он обеспечивает низкий порог входа для пользователей работающих с языком моделирования ArchiMate.
ArchiMate (в оригинале Architecture-Animate) — это открытый и независимый язык моделирования архитектуры предприятия и визуализации архитектуры внутри и за пределами бизнес-процессов. Это технический стандарт от The Open Group, базирующийся на IEEE 1471.
ArchiMate дистанцируется от других языков, таких как UML и BPMN по предназначению для моделирования предприятия. Цель ArchiMate — «быть настолько лаконичным, насколько это возможно» (as small as possible), а не охватить все возможные сценарии.
Основные сущности и типы связей языка ArchiMate можно рассматривать как структуру, так называемую ArchiMate Framework.
Слои языка хорошо соотносятся с соответствующими фазами метода разработки архитектуры TOGAF (TOGAF и ArchiMate являются стандартами The Open Group).
Что такое ArchiMate за 7 минут
Экспорт модели
Модель ArchiMate представляет из себя XML документ и подразумевает наличие инструмента Archi для редактирования и просмотра. Archi позволяет экспортировать модель в виде отчуждаемых файлов, и поддерживает такие форматы:
- Статический HTML отчет с интерактивной структурой и навигацией;
- CSV отчет по имеющимся в модели элементам, характеристикам и связям;
- Jasper отчет в форматах PDF, HTML, RTF, PPT, ODT и DOCX;
- Экспорт модели в нативном формате XML с расширением .archimate ;
- Экспорт модели в формате Open Exchange XML.
Совместная работа
coArchi — это расширение Archi, которое позволяет вести коллективную работу над моделями ArchiMate, посредством совместного использования и управления версиями моделей в git репозитории.
Для установки расширения перейдите на страницу с списком расширений, найдите в списке coArchi и следуйте инструкциям. Репозиторий проекта на GitHub также содержит дополнительную информацию по настройке и решению проблем в работе, подробности смотрите в wiki.
ℹ️ Оригинальный файл модели ArchiMate представляет из себя единый XML документ с расширением .archimate . Для возможности совместного редактирования и слияния изменений, данная модель разбивается плагином coArchi на элементы, где каждый элемент хранится в отдельном файле. Соответственно открыть модель сохраненную в репозитории при помощи coArchi, вы сможете только используя это расширение.
Некоторые функции coArchi находятся в стадии разработки и постоянно улучшаются. На текущий момент coArchi версии 0.8.1 имеет ограниченную поддержку специализаций и образов добавленных в Archi 4.9.
ℹ️ Обратите внимание, что для работы с репозиторием по SSH средствами плагина coArchi — работают только RSA ключи в формате PEM, о чем написано в разделе вики. Также вам не удастся использовать oauth2 токен (у меня не вышло), к примеру в случае активной двухфакторной аутентификации. Судя по всему проблема связана с JGit используемым в проекте, разработчики плагина пока не дали ответа на это замечание.
Как видим, всё же имеются некоторые трудности в настройке окружения, на этапе установки coArchi и клонирования модели зачастую менеджер сдается и просто просит скриншот модели у её авторов.
Интерфейс командной строки
Помимо графического интерфейса, Archi также имеет интерфейс командной строки. Подробную справку о работе с ним вы можете найти в вики проекта.
К примеру для вывода справки с доступными аргументами выполните:
./Archi -application com.archimatetool.commandline.app -consoleLog -nosplash —help
Образ контейнера Archi
Получив сведения о том, что у Archi есть CLI, функция экспорта и возможна совместная работа в git репозитории, мы имеем все основания попытаться упаковать всё это в образ контейнера, для дальнейшего использования в пайплайне.
Поскольку некоторые библиотеки зависят от наличия драйвера дисплея, для запуска CLI в Linux, нам потребуется установить определенные библиотеки, такие как gtk3 и xvfb. В связи с этим и размер образа становиться заметно больше.
Итоговый Dockerfile доступен в репозитории:
archimate-ci-image/Dockerfile at master · WoozyMasta/archimate-ci-image
А для удобства работы со всеми аргументами командной строки и реализации возможности доступа к репозиторию модели с любыми стандартными проколами и методами аутентификации git, был реализован bash сценарий запуска entrypoint.sh:
archimate-ci-image/entrypoint.sh at master · WoozyMasta/archimate-ci-image
- В скрипте реализованы переменные окружения для управления ключевыми параметрами клонирования модели и создания отчета, что упростит применение образа в CI пайплайнах.
- Клонирование репозитория выполняется привычной утилитой git, а уже после передается Archi как модель. Так мы обходим ограничения самого coArchi.
- Выполнена обвязка для исполнения задания в GitHub Actions с созданием отдельной ветки используя git subtree и дальнейшей публикацией в GitHub Pages.
- Выполнена обвязка для более простого запуска заданий в GitLab CI
ℹ️ Git subtree выбран не спроста. Как альтернативный вариант в GitHub Pages можно опубликовать файлы из отдельного каталога текущей ветки, к примеру /docs , но в таком случае у нас в основной рабочей ветке появляются лишние автоматические «шумные» коммиты, а вместе с ними и растет размер индекса этой ветки, помимо этого, при ответвлении и слиянии правок у нас появляются конфликты в сгенерированных отчетах, которые просто так не решаются через интерфейс Archi.
Образы контейнера доступны в репозиториях:
- GHCR ghcr.io/woozymasta/archimate-ci:4.9.1-1.0
- Quay quay.io/woozymasta/archimate-ci:4.9.1-1.0
- DockerHub docker.io/woozymasta/archimate-ci:4.9.1-1.0
Пайплайн
Для демонстрации работы был создан отдельный проект на GitHub и GitLab с примером модели ArchiMetal взятой из официального репозитория archimate и сохраненной при помощи coArchi.
При запуске контейнера в среде GitHub Action или GitLab CI в HTML отчет также будут добавлены ссылки на другие отчеты включенные для генерации.
GitLab пайплайн
Для генерации отчета и публикации его в GitLab Pages необходимо создать файл .gitlab-ci.yml в корне проекта вашей coArchi модели, примерно с таким содержимым:
— pages: stage: build image: name: quay.io/woozymasta/archimate-ci-image:4.9.1-1.0.2 entrypoint: [«»] script: — /opt/Archi/entrypoint.sh variables: ARCHI_HTML_REPORT_ENABLED: «true» ARCHI_JASPER_REPORT_ENABLED: «true» ARCHI_JASPER_REPORT_FORMATS: «PDF,DOCX» ARCHI_CSV_REPORT_ENABLED: «false» ARCHI_EXPORT_MODEL_ENABLED: «true» rules: — if: $CI_COMMIT_BRANCH != null || $CI_PIPELINE_SOURCE == «merge_request_event» exists: — model/folder.xml artifacts: name: «$CI_JOB_NAME from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG» expire_in: 30d paths: — public
После фиксации изменений в репозитории, у вас должен успешно выполнится пайплайн (пример), а модель опубликоваться в виде web-страницы (пример) в вашем GitLab Pages.
GitHub пайплайн
Для GitHub был реализован GitHub Action — Deploy Archi Report, который опубликует вашу модель на GitHub Pages из отдельной ветки gh-pages . Чтобы воспользоваться им вам достаточно создать файл в каталоге .github/workflows к примеру .github/workflows/main.yml с таким содержимым:
Зафиксировав изменения в репозитории, у вас должен успешно выполнится пайплайн (пример). После первого запуска вам также понадобится указать из какой ветки следует публиковать отчет, по умолчанию это gh-pages . Перейдите в настройки репозитория, в разделе Pages укажите исходную ветку gh-pages и используйте корневой каталог для поиска файлов, примените эти настройки.
После этого, публикация будет выполнятся из указанной вами ветки (пример) в вашем GitHub Pages.
На этом всё
Благодарю за ваше время и внимание! Успешных вам пайплайнов и актуальных моделей.
Присоединяйтесь в телеграмм канал, где я периодически публикую заметки на тему DevOps, SRE и архитектурных решений.
Источник: habr.com
Зачем бизнес-аналитику ArchiMate: 7 главных преимуществ и пара недостатков Archi
Недавно мы говорили про архитектуру предприятия и фреймворк TOGAF для ее проектирования. В продолжение этой темы, сегодня рассмотрим, как этот архитектурный подход реализуется на практике в виде программного инструментария, который бизнес-аналитик может использовать для комплексного описания корпоративной деятельности. Читайте далее, что такое ArchiMate, Archi и как это связано с TOGAF.
Что такое ArchiMate и при чем здесь Archi
TOGAF является открытой концепцией, которая может быть использована практически любым предприятием и программным продуктом [1]. При этом наиболее точным соответствием концепциям TOGAF отличается язык архитектурного моделирования ArchiMate, выделяя для описания корпоративной деятельности следующие уровни [2]:
- уровень бизнеса (business) с элементами для описания структуры, поведения и информации об объектах, имеющих непосредственное отношение к людям, бизнес-процессам и продуктам, а также взаимоотношениях между ними.
- уровень программного обеспечения (application), описывающий структуру и поведение приложений, используемых предприятием для своевременной и целенаправленной обработки корпоративных данных.
- уровень аппаратного обеспечения (technology), который содержит элементы для описания структуры и поведения корпоративного ИТ-комплекса – узлы кластера, мультифункциональные устройства, сети передачи данных, инфраструктурные сервисы и системное программное обеспечение.
При этом ArchiMate может описать только «офисные» бизнес-процессы (проектирование, разработка, продажи, продвижение и пр.), поскольку в этом языке отсутствуют элементы для обозначения производственного оборудования, можно описать лишь информацию об этих объектах [2].
На каждом уровне ArchiMate существуют поведенческие и структурные элементы, причем последние могут быть активными или пассивными. Все они связываются друг с другом отношениями, которые могут быть структурными, динамическими или зависимостями. Также для более полного описания на каждый из уровней могут быть добавлены элементы, описывающие мотивацию, стратегию, реализацию или миграцию [3].
Прикладная реализация языка ArchiMate выполнена в виде кроссплатформенного бесплатного продукта Archi, о преимуществах и недостатках которого мы поговорим далее.
7 главных достоинств Archi
С точки зрения практического использования Archi в профессиональной деятельности бизнес-аналитика, его ключевыми плюсами считаются следующие:
- Возможность комплексного описания всех аспектов корпоративной деятельности, от архитектуры предприятия до продуктов и сервисов, включая поддержку методологии TOGAF, которая считается наиболее распространенным и сбалансированным подходом для описания архитектуры предприятия;
- Универсальность – подходит для любой предметной области, от ритейла до банковского бизнеса;
- Простота использования – в отличие от того же ARIS, который предлагает 80 различных элементов для описания бизнес-процессов, инструментарий Archi намного лаконичнее (всего 15 элементов на бизнес-уровне), что упрощает работу с ним;
- Кроссплатформенность позволяет устанавливать продукт на различные операционные системы (Windows, Linux, Mac);
- Расширяемость за счет разнообразных дополнений (extension), например, coArchi делает возможной многопользовательскую совместную работу над моделями и их версионирование в Git-репозитории [4]. Сюда же можно отнести возможность локализации пользовательского интерфейса, в частности, перевод на нужный язык пунктов меню и других элементов взаимодействия с системой, что дополнительно упрощает работу с ней.
- Возможность генерации отчетов с визуализацией разработанных моделей, например, в виде скомпилированного HTML-документа, который может использоваться как корпоративная база знаний. Еще возможен экспорт моделей в PDF, PPT, DOC(X), RTF и ODT форматы с помощью Java-движка Jasper Report. Также существует инструмент кастомизации шаблонов для отчетов, который пока сложно назвать удобным для использования.
- Открытый исходный код и бесплатная модель использования, что позволяет бизнес-аналитику работать с этим инструментом не только в рамках корпоративных лицензий, но и в личном режиме, например, с целью обучения.
Источник: babok-school.ru
Зачем бизнес-аналитику ArchiMate
ArchiMate — это нотация, используемая для описания архитектуры информационных систем. У нее есть свое бесплатное ПО, которое позволяет дать описание множеству аспектов: бизнесу, стратегии, приложениям, технологиям, производству и т. д. С помощью ArchiMate можно описать пассивную и активную структуру системы, ее поведение, различные типы связей между элементами.
Для бизнес-аналитика ArchiMate — удобный инструмент, который облегчает процесс принятия решений и изменений внутри бизнеса или между его областями. Его использование экономит время, помогает выстроить связи между структурными элементами и без проблем ориентироваться в них. Особенности данного инструмента позволяют описать все офисные бизнес-процессы: проектирование, разработку, продажи, продвижение и т. д.
Одно из важных преимуществ ArchiMate — доступность для специалистов всех уровней. Низкий порог вхождения и простой интерфейс на русском языке делают ArchiMate незаменимым инструментом для начинающего и уже опытного бизнес-архитектора. Язык взаимодействует со своим «братом» TOGAF и дополняет другие инструменты моделирования — UML, BPMN.
ArchiMate позволяет описать корпоративную деятельность на трех уровнях:
- На уровне бизнеса — позволяет сосредоточиться на структурах и объектах, непосредственно связанных с персоналом компании, бизнес-процессами, продуктами и услугами, а также взаимоотношениях между ними.
- Второй уровень — уровень ПО. С помощью ArchiMate бизнес-аналитик может описать структуру приложений, используемых предприятием для достижения своей целей.
- И третий уровень —- описывает технологии (аппаратное обеспечение). Он включает в себя описание корпоративного ИТ-комплекса (корпоративные сервисы и ПО, сети передачи данных, базы-данных и т. д.)
На каждом из этих уровней расположены поведенческие и структурные элементы. Отличительной особенностью структурных элементов является то, что они могут преобразоваться в активные и пассивные. Все элементы (независимо от вида) связаны друг с другом отношениями, которые могут быть структурными, динамическими или зависимыми.
Для использования ArchiMate требуется наличие Archi — бесплатное кроссплатформенное ПО, позволяющее открывать и редактировать отчеты, созданные с помощью этого языка. Сами отчеты формируются в XML-документ и могут включать в себя «классический» HTML-отчет, отчет в форматах CSV и Jasper, а также модель, представленную в форматах PDF, HTML, DOCX и других.
У ArchiMate есть несколько расширений, дополняющих функционал языка (например, coArchi, с помощью которого можно совместно использовать и управлять моделями).
Преимущества ArchiMate:
- Универсальный. Подходит для работы с любыми задачами: от малого бизнеса до крупного ритейлера.
- Простой в освоении. Если у вас есть «легенда», вы без проблем разберетесь с ArchiMate, даже если раньше вы не работали с диаграммами.
- Понятный синтаксис. Основные элементы ArchiMate — это блоки уровней, связи, мотивация и реализация. Блоки уровней делятся на несколько видов: оранжевые и желтые (используются для описания уровня бизнеса), голубые (используются для описания приложений) и зеленые (используются для описания технологий).
- Лаконичный. В ArchiMate вы не найдете ничего лишнего и, как написано на сайте, главная цель ArchiMate — «as small as possible». Инструмент содержит в себе всего 15 элементов, которые позволяют без труда выстраивать бизнес-процессы.
- Функциональный. Еще одна особенность ArchiMate — с его помощью можно описать бизнес-процессы компании, и, что не менее важно, показать стратегию компании с помощью визуализации, используя те инструменты, которые нравятся вам и будут понятны заказчику.
- Полностью на русском языке. С помощью ArchiMate без проблем можно разрабатывать проекты на русском языке.
Бесплатный. Поддерживается бесплатным инструментарием моделирования архитектуры, что позволяет работать с ним не только в рамках лицензии для компании, но и в личных целях, например, для обучения.
Недостатки ArchiMate:
- Неудобен для разработки «глубоких» классификаций.
- Инструменты ArchiMate могут показаться слишком простыми для продвинутых пользователей.
- Иногда могут возникнуть трудности с описанием данных. ArchiMate подходит только для работы с «офисными» бизнес-процессами, потому что в языке нет возможности показать производственное оборудование.
Вывод
ArchiMate — это не замена UML, BPMN или Business Model Canvas. ArchiMate разработан для дополнения существующих инструментов и улучшения работы участников процесса разработки ПО: менеджеров, руководителей, бизнес-аналитиков, сотрудников служб качества, бизнес-архитекторов и разработчиков. ArchiMate подойдет для тех, кто изучает основы языка архитектурного моделирования. Этот инструмент очень полезен, прост в освоении, с его помощью можно без труда комплексно описать корпоративную деятельность. Все это делает ArchiMate незаменимым помощником любого бизнес-аналитика.
Хотите внедрить этот инструмент в свой проект? Переходите по ссылке и получите скидку 10% на курс «Моделирование в ArchiMate».
Источник: ibs-training.ru