Skip to content
forked from RabotaRu/DocHub

Управление архитектурой как кодом

License

Notifications You must be signed in to change notification settings

rosticos/DocHub

 
 

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Живое демо и подробная документация

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Инкрементальное развитие архитектуры

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Инкрементальное развитие архитектуры

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Инкрементальное развитие архитектуры

Пример портала.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры.

Инкрементальное развитие архитектуры

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

Выполните команды:

docker-compose up --build

DocHub станет доступен по адресу http:https://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone [email protected]:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0

# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Лицензия

DocHub распространяется под лицензией GNU GPL v.2 Open source license.

About

Управление архитектурой как кодом

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 38.6%
  • Vue 30.4%
  • JavaScript 21.8%
  • CSS 8.6%
  • Other 0.6%