Каковы будут критерии наличия отдельных веб-приложений? - PullRequest
6 голосов
/ 14 декабря 2011

Я пытаюсь настроить проект Rails, который имеет 2 логически разделенных компонента, панель администратора и пользовательский портал.Из того, что я читал до сих пор, есть несколько способов настроить это:

  1. Объединить оба в одном веб-приложении с одной базой данных
  2. Отдельные веб-приложения для администратораи Основные приложения, но используют общую базу данных
  3. Отдельные веб-приложения с отдельными базами данных
  4. Объедините оба, но разверните отдельные экземпляры, один из которых работает от имени администратора, а другой - как Главное приложение

Основное приложение должно обрабатывать интенсивный трафик, а администратор - умеренно низкий.
Каков наилучший подход для настройки проекта из четырех вариантов?
Кроме того, каковы могут быть недостатки каждого из них?
Есть ли другой способ сделать это лучше?

1 Ответ

9 голосов
/ 14 декабря 2011

Некоторые идеи о возможных архитектурных решениях:

1.Объедините оба в одном веб-приложении с одной базой данных

плюсы:

  • У вас есть все в одной конфигурации проекта, и поэтому выизбегайте двойной настройки параметров проекта.

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

минусы:

  • Безопасность, функциональность, которая может перевернуть вещи в вашей системе, находится под одной крышей с пользователемсвязан с кодом, поэтому существует большая вероятность того, что функции, связанные с администратором, могут быть использованы злоумышленником.

2.Разделяйте веб-приложения для приложений администратора и приложения, но используйте общую базу данных

плюсы:

  • Вы разделяете код с различным контекстом в разных приложениях, упрощая работуи пользовательский опыт в обоих из них более лаконичен.

минусы:

  • Поскольку причиной существования второго приложения является манипулирование данными и основным приложением, оно должно будет прочитать ивоздействовать на данные, используемые в основном приложении;следовательно, дает вам меньше накладных расходов.

Это будет наилучшим вариантом в большинстве сценариев.

3.Отдельные веб-приложения с отдельными базами данных

Не могу понять, почему вы хотите сделать это, если второе приложение предназначено для обработки первого и содержимого базы данных.Если вы собираетесь использовать во втором приложении большой объем данных, не относящихся к вашему основному приложению, это будет разумным вариантом.

4.Объедините оба, но разверните отдельные экземпляры, один из которых работает от имени администратора, а другой - от основного приложения.

.сложность обработки двух экземпляров.

Злоумышленник может найти способ войти в свой экземпляр администратора и получить доступ к функциям уровня администратора.

...