我正在开发一个用于农业数据集数据分析的Web应用程序。
其实我想制作
应用程序是多租户,我希望将SaaS应用程序部署在私有云中(在我们学校)。
我在编程部分遇到了一些基本的疑问。
我是否需要在Hadoop的map / reduce功能中开发应用程序?
其次,选择数据库。由于数据本质上是高度结构的(如sql),我可以使用sql server来管理云中的数据吗?除此之外,我还需要除IaaS设置和SaaS应用程序之外的任何中间件吗?
我正在使用J2EE技术进行SaaS开发。租户数量将在50以内。在数据库方面哪种方法更好。实际上安全性并不是一个大问题。
您能否告诉我开发多租户SaaS的基本要求是什么?即是否所有应用程序,平台和数据库都要配置为多租户或者只是数据库部分?
我是这项技术的新手,我更倾向于只使用开源技术进行开发。
请向我提出您的建议,这些建议对于朝着正确的方向前进非常有帮助。
感谢您宝贵的时间。
此致
桑吉塔
答案 0 :(得分:2)
我是否需要在Hadoop的map / reduce功能中开发应用程序?
map / reduce与SaaS或多租户无关
其次,选择数据库。由于数据本质上是高度结构的(如sql),我可以使用sql server来管理云中的数据吗?在这种情况下,除了IaaS设置和SaaS应用程序之外,我还需要任何中间件吗?
这主要取决于您的数据使用情况。但是,多租户系统的一个主要方面是数据模型扩展。在RDBMS世界中有多种已建立的选项可以支持这一点。查看here了解更多详情。
通常,NoSQL数据库是首选,因为它们支持更多非结构化数据结构。
我正在使用J2EE技术进行SaaS开发。租户数量将在50以内。在数据库方面哪种方法更好。实际上安全性并不是一个大问题。
如果安全性不是很大,那么您可以在同一个数据库模式实例中共同定位所有客户的数据。这是最简单的方法,但意味着更多的dba头痛,如归档/备份等。看看利弊here
您能否告诉我开发多租户SaaS的基本要求是什么?即是否所有应用程序,平台和数据库都要配置为多租户或者只是数据库部分?
品牌推广(客户特定UI主题等),工作流程,数据模型扩展和访问控制是任何多租户系统需要考虑的4个主要方面。 (Source)。因此,您选择的任何设计或架构都应该能够解决这些问题。
答案 1 :(得分:0)
基本SAAS申请必须:
如果您使用的是SQL,并且您对MSQL或Oracle没有任何特定的技术要求,则可以使用Postgres或MySQL,或者您最熟悉的任何一种。他们都做同样的事情。在构建数据时,请确保向每个表添加其他列“tenant_id”,以便能够选择与该实例相关的内容。
如果您正在构建ACL,则需要为系统设置ACL,并为每个租户设置通用应用程序ACL。因此,当用户登录时,他们会看到一个控制面板,允许他们控制他们的实例。如果您只是希望他们在没有控制面板的情况下直接登录到他们的实例,那么您可以放弃一层代码和数据库的复杂性。
就J2EE而言,我无法帮助你。
SAAS最重要的一个方面是租户实例安全性。您必须始终显示正确的数据,必须确保对单个帐户的数据库所做的任何更改都不会影响任何其他帐户。最重要的是,数据库和代码库必须免受注入攻击。
您的应用程序只有最薄弱的组件一样强大,如果您没有正确保护它,它将在第一个障碍时落下。