Разработка Multitenant SaaS - PullRequest
       37

Разработка Multitenant SaaS

1 голос
/ 19 ноября 2010

Я занимаюсь разработкой веб-приложения для анализа данных по наборам сельскохозяйственных данных.На самом деле я хочу сделать приложение

мультитенантным, и я хочу развернуть это приложение SaaS в частном облаке (в нашей школе).

У меня возникло несколько основных сомнений в программированииpart.

  1. Нужно ли разрабатывать приложение в Hadoop для отображения / уменьшения функциональности?

  2. Во-вторых, выбор базы данных.Поскольку данные носят структурный характер (например, sql), могу ли я использовать сервер sql для управления данными в облаке?В таком случае мне нужно какое-либо промежуточное программное обеспечение в дополнение к настройке IaaS и приложению SaaS?

  3. Я использую технологию J2EE для разработки SaaS.И количество арендаторов будет в пределах 50. Какой подход лучше в аспекте базы данных.На самом деле безопасность здесь не так важна.

  4. Не могли бы вы сказать, каковы основные требования для разработки мультитенантного SaaS?т.е. все ли приложение, платформа и база данных должны быть настроены для мультитенантности, или же только часть базы данных?

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

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

Спасибо за ваше драгоценное время.

С уважением,

Сангита

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Нужно ли разрабатывать приложение в Hadoop для отображения / уменьшения функциональности?

map / lower не имеет отношения к SaaS или мультитенантности


Во-вторых, выбор базы данных.Поскольку данные носят структурный характер (например, sql), могу ли я использовать сервер sql для управления данными в облаке?В таком случае мне нужно какое-либо промежуточное программное обеспечение в дополнение к настройке IaaS и приложению SaaS?

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

Как правило, базы данных NoSQL предпочтительнее, поскольку они поддерживают более неструктурированные структуры данных.


Я использую технологию J2EE для разработки SaaS.И количество арендаторов будет в пределах 50. Какой подход лучше в аспекте базы данных.На самом деле безопасность здесь не является большой проблемой.

Если безопасность не имеет большого значения, тогда вы можете разместить данные всех клиентов в одном экземпляре схемы одного дб.Это самый простой подход, но он будет означать больше проблем с dba, таких как архивирование / резервное копирование и т. Д. Посмотрите на плюсы и минусы здесь


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

Брендинг (пользовательские темы пользовательского интерфейса и т. д.), рабочий процесс, расширения модели данных и контроль доступа - это 4 основных аспекта, которыенужно учитывать для любой многопользовательской системы.( Источник ).Таким образом, любой выбранный вами дизайн или архитектура должны быть в состоянии учитывать эти аспекты.

Рекомендуемое чтение: Многопользовательская архитектура Force.com

0 голосов
/ 13 сентября 2013

Базовое приложение SAAS должно:

  1. Использовать один экземпляр базы кода для множества экземпляров арендатора
  2. Сопоставить URL-адреса с пользовательскими экземплярами приложения
  3. Mapарендаторы в базе данных и их экземпляры приложения.

Если вы используете SQL и у вас нет особых требований к технологии для MSQL или Oracle, вы можете использовать Postgres или MySQL, или еще что-нибудь ».наиболее комфортно с.Они все делают одно и то же.Когда вы строите свои данные, убедитесь, что вы добавили дополнительный столбец 'tenant_id' к каждой таблице, чтобы иметь возможность выбирать контент, относящийся к этому экземпляру.

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

Что касается J2EE, я не могу вам помочь.

Одним из наиболее важных аспектов SAAS является безопасность экземпляра арендатора.Вы должны всегда отображать правильные данные, а должны следить за тем, чтобы любые изменения, внесенные в базу данных для одной учетной записи, не влияли на другие учетные записи.Прежде всего, база данных и кодовая база должны быть защищены от атак с использованием инъекций.

Ваше приложение обладает такой же стойкостью, как и самый слабый компонент, и если вы его не защитите должным образом, оно 'упадет при первом препятствии.

...