#javascript #angularjs #node.js #mongodb #azure
#javascript #angularjs #node.js #mongodb #azure
Вопрос:
Этот вопрос состоит из двух частей, основанных на том, как он должен работать в производстве.
Цель:
- Создайте веб-приложение Angular 2 (SPA), вызывающее api
- NodeJS API (RESTful)
- MongoDB
- Хост в Azure
Вот первый вопрос:
- Чтобы разместить на Azure и, надеюсь, использовать непрерывное развертывание с github, нужно ли мне создавать два веб-приложения Azure? Один для приложения Angular 2 и один для API NodeJS?
- Или я могу интегрировать RESTful NodeJS API в приложение с приложением Angular 2? Вероятно, для этого потребуется только одно веб-приложение в Azure. Если это возможно, я не понимаю, как выполнить как API, так и приложение Angular 2 в Azure. Кажется, команда «npm start» обычно запускает приложение Angular 2, но можно ли также запустить API NodeJS?
Любая ясность для этого приветствуется.
Ответ №1:
Здесь слишком много возможностей, с множеством возможных архитектур.
Но, чтобы ответить на ваш вопрос, да, возможно иметь одно монолитное приложение с интерфейсом Angular 2 и полноценным бэкэндом NodeJS с экземпляром MongoDB
Варианты следующие:
- Иметь монолит с вышеупомянутой конфигурацией. Плюсом является то, что его будет проще реализовать и развернуть. Если ваше приложение очень простое и с низким трафиком, вы можете использовать этот подход.
- Иметь многоуровневую архитектуру с интерфейсным приложением Angular 2, уровнем API с NodeJS и, возможно, Express. Облачный экземпляр MongoDB или кластер на любом провайдере, например MongoLabs для вашего уровня данных. Это позволяет выборочно масштабировать ваши слои в соответствии с трафиком. Если вы работаете в более крупной команде, каждая команда может работать на своем собственном уровне.
Комментарии:
1. Допустим, в Azure какое развертывание было бы самым простым и менее дорогостоящим? Я думаю, это ваш первый пункт, поскольку оба уровня интегрированы в одно монолитное приложение. Для второго пункта в Azure, будут ли необходимы два экземпляра веб-приложения для этого сценария (увеличение стоимости)? Один для приложения Angular 2 и один для API NodeJS? MongoLabs или MongoDB Atlas — мой текущий выбор.
2. Наименее дорогостоящим будет монолит, так как вам нужно иметь только одно приложение и один запущенный экземпляр Mongo (если вы не хотите масштабироваться). Вы можете масштабироваться, если хотите, но вам нужно будет масштабировать все ваше приложение, а не уровень пользовательского интерфейса или уровень API выборочно, как это возможно в подходе № 2
3. И да, как вы уже догадались, если это многоуровневая архитектура, накладные расходы заключаются в том, что вам потребуется хотя бы один экземпляр вашего веб-приложения и один экземпляр вашего уровня API. И да, это увеличит стоимость
4. Это то, что я предполагал, но не был уверен. Спасибо за ответ.