С растущим принятием Микросервисы , один из вопросы иногда обсуждается это моно-репо против многорепо , который пытается ответить, если вы структурируете свой код, чтобы иметь Один большой отдельный репозиторий Для всех/нескольких микросервисов или Индивидуальные, небольшие репозитории Для каждого микросервиса.
Если вы находитесь в сценарии использования моно-репо , где у вас есть несколько проектов в одном репо, и вы хотите развернуть эту единую кодовую базу в несколько приложений и услуг в Azure , есть простой способ сделать это.
Куду , двигатель, стоящий за git-развертками в Azure App Service, имеет Документация о том, как Настройка развертывания , но Только один из этих способов хорошо работает с моно-репо -Scenario Анкет Подход использования . Вызов
-file, к сожалению, блокирует конфигурацию указанного проекта в ваш код исходного кода, так что это не сработает для моно-репос Анкет
Вместо этого используя Настройки приложения Доступно во всем Azure App Services , вы используете ключ Проект
к Установите значение для пути проекта Вы хотите, чтобы вас развернули в ваших различных услугах Azure App. Таким образом, это решение работает для функциональных приложений, веб -приложений, приложений API и многого другого.
Пример
Если у вас есть следующая структура кода в вашем отдельном репозитории:
/src/ExampleProject/ExampleProject.csproj
/src/exampleproject. FunctionsApp/exampleProject. Functionsapp.csproj
/src/exampleproject. Webapiapp/exampleproject. Webapiapp.csproj
/src/exampleproject. Webapp/exampleproject. Webapp.csproj
/test/exampleProject. Тесты/Примерпроект. Tests.csproj
Тогда вы настроили свой ПРОЕКТ
-Пат в Настройки приложения Для ваших различных приложений, таких как это:
- Функциональное приложение :
"src/exampleProject. Functionsapp "
- Веб -приложение :
"src/exampleProject. WebApp "
- Приложение API :
"src/exampleProject. Webapiapp "
С Пути относительно корневого пути Git-Repositor Анкет Вы также можете указать прямо на .csproj
-Виль, если есть какой-либо риск неоднозначности в одном и том же файле.
Когда это будет сделано, вы можете Настройте услуги приложения Azure для непрерывного развертывания Использование того же хранилища , в GitHub, Bitbucket, Local GIT или любой другой источник, поддерживаемый в Azure.
Оригинал: «https://dev.to/sebnilsson/azure-deployment-of-mono-repos-in-github-27jc»