开发多租户 SaaS

发布于 2024-10-03 06:14:48 字数 560 浏览 1 评论 0原文

我正在开发一个用于农业数据集数据分析的网络应用程序。实际上,我想让

应用程序成为多租户,并且希望将该 SaaS 应用程序部署在私有云(在我们学校)中。

我对编程部分有一些基本的疑问。

  1. 我需要在Hadoop的map/reduce功能中开发应用程序吗?

  2. 其次,数据库的选择。由于数据本质上是高度结构化的(如 sql),我可以使用 sql 服务器来管理云中的数据吗?这样除了IaaS设置和SaaS应用程序之外,我还需要任何中间件吗?

  3. 我正在使用 J2EE 技术进行 SaaS 开发。并且租户数量将在50个以内。在数据库方面哪种方法更好。其实安全在这里并不是一个大问题。

  4. 您能否告诉我开发多租户 SaaS 的基本要求是什么?即是否将所有应用程序、平台和数据库配置为多租户,还是仅配置数据库部分?

    我是这项技术的新手,我更愿意仅使用开源技术进行开发。

请给我您的建议,这对于朝着正确的方向前进非常有帮助。

感谢您抽出宝贵的时间。

问候,

桑吉塔

I am developing a web application for data analysis on agricultural datasets. Actually I want to make the

application to be multi tenant and I wish to deploy that SaaS application in a private cloud (in our school).

I got a few basic doubt in the programming part.

  1. Do I need to develop the application in the Hadoop's map/reduce functionality?

  2. Secondly,the selection of database. Since the data are highly structural in nature (like sql) can I use a sql server to manage data in cloud? In such do I need any middleware in addition to the IaaS setup and the SaaS application?

  3. I am using J2EE technology for SaaS development. And the number of tenants will be within 50. Which approach is better in tha data base aspect. Actually security is not a big concern here.

  4. Could you please tell me what are the basic requirements to develop a multi-tenant SaaS? ie whether all the application,platform and database to be configured for multi tenancy or else only the database part?

    I am new to this technology and I preferred to use only the open source technologies for the development.

Kindly give me your suggestions which could be highly helpful to proceed in the right direction.

Thank you for your valuable time.

Regards,

Sangita

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

¢好甜 2024-10-10 06:14:48

我需要在 Hadoop 的 Map/Reduce 功能中开发应用程序吗?

map/reduce 与 SaaS 或多租户无关


其次,数据库的选择。由于数据本质上是高度结构化的(如 sql),我可以使用 sql 服务器来管理云中的数据吗?除了 IaaS 设置和 SaaS 应用程序之外,我还需要任何中间件吗?

这主要取决于您的数据使用情况。然而,多租户系统的主要方面之一是数据模型扩展。在 RDBMS 世界中,有多种既定选项可以支持这一点。请参阅此处了解更多详细信息。

一般来说,NoSQL 数据库是首选,因为它们支持更多非结构化数据结构。


我正在使用J2EE技术​​进行SaaS开发。并且租户数量将在50个以内。在数据库方面哪种方法更好。实际上,安全在这里并不是一个大问题。

如果安全性不是一个大问题,那么您可以将所有客户的数据共同定位在同一个数据库模式实例中。这是最简单的方法,但意味着更多的 dba 头痛,例如归档/备份等。看看优缺点 这里


您能告诉我开发多租户SaaS的基本要求是什么吗?即是否将所有应用程序、平台和数据库配置为多租户,还是仅配置数据库部分?

品牌(客户特定的 UI 主题等)、工作流程、数据模型扩展和访问控制是任何多租户系统需要考虑的 4 个主要方面。 (来源)。因此,您选择的任何设计或架构都应该能够解决这些方面的问题。

建议阅读:Force.com 多租户架构

Do I need to develop the application in the Hadoop's map/reduce functionality?

map/reduce has no relation to SaaS or multitenancy


Secondly,the selection of database. Since the data are highly structural in nature (like sql) can I use a sql server to manage data in cloud? In such do I need any middleware in addition to the IaaS setup and the SaaS application?

This mainly depends on your data usage. However, one of the main aspects of multitenant system is the data model extension. There are multiple established options to support this in RDBMS world. Look here for more details.

In general, NoSQL databases are preferred as they support more unstructured data structures.


I am using J2EE technology for SaaS development. And the number of tenants will be within 50. Which approach is better in tha data base aspect. Actually security is not a big concern here.

If security is of not a big deal then you can co-locate the data of all customers in the same singe db schema instance. This is the simplest approach but would mean more dba headaches like archiving/backup etc. Look at the pros and cons here


Could you please tell me what are the basic requirements to develop a multi-tenant SaaS? ie whether all the application,platform and database to be configured for multi tenancy or else only the database part?

Branding (Customer specific UI themes etc), Workflow, data model extensions and access control are 4 main aspects that need to be considered for any multitenant system. (Source). So any design or architecture you choose should be able to address these aspects.

Suggested reading: Force.com multi-tenant architecture

兔小萌 2024-10-10 06:14:48

基本 SAAS 应用程序必须:

  1. 每个多个租户实例使用单个代码库实例
  2. 将 URL 与应用程序的用户实例映射 将
  3. 数据库中的租户映射到其应用程序实例。

如果您使用 SQL 并且对 MSQL 或 Oracle 没有任何特定的技术要求,则可以使用 Postgres 或 MySQL,或者您最熟悉的任何一个。他们都做同样的事情。当您构建数据时,请确保向每个表添加一个附加列“tenant_id”,以便能够选择与该实例相关的内容。

如果您要构建 ACL,则需要为系统设置 ACL,并为每个租户设置通用应用程序 ACL。因此,当用户登录时,他们会看到一个控制面板,允许他们控制其实例。如果您只想让他们在没有控制面板的情况下直接登录实例,那么您可以放弃一层代码和数据库复杂性。

就 J2EE 而言,我无法帮助您。

SAAS 最重要的方面之一是租户实例安全性。您必须始终显示正确的数据,并且必须确保对单个帐户的数据库所做的任何更改不会影响任何其他帐户。最重要的是,必须保护数据库和代码库免受注入攻击。

您的应用程序的强度取决于最薄弱的组件,如果您没有正确保护它,它就会在第一个障碍时崩溃。

Basic SAAS application has to:

  1. Use a single instance of code base per many tenant instances
  2. Map URLs with user instances of the application
  3. Map tenants in the database to their application instances.

If you're using SQL and you don't have any specific technology requirements for MSQL or Oracle, you can use Postgres or MySQL, or whichever you're most comfortable with. They all do the same thing. When you're building your data, make sure you add an additional column 'tenant_id' to each table to be able to select the content relevant to that instance.

If you're building ACL's, you'll want to set up an ACL for the system and a generic application-ACL for each tenant. So when the user logs in, they see a control panel that allows them to control their instance. If you just want them to log straight into their instance without a control panel, then you can ditch a layer of code and database complexity.

As far as J2EE goes, I can't help you there.

One of the most important aspects of SAAS is tenant instance security. You must display the correct data at all times and you must ensure that any changes made to the database for a single account don't affect any other accounts. Above all else, the database and code base must be protected from injection attacks.

Your application is only as strong as the weakest component and if you don't secure it properly, it'll fall down at the first hurdle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文