Single- vs. multi-tenant SaaS¶
What do we mean by Single-tenant and multi-tenant SaaS? Especially with respect to the DataRobot cloud?
Single-tenant and multi-tenant generally refer to the architecture of a software-as-a-service (SaaS) application. In a single-tenant architecture, each customer has their own dedicated instance of the DataRobot application. This means that their DataRobot is completely isolated from other customers, and the customer has full control over their own instance of the software (it is self-managed). In our case, these deployment options fall in this category:
- Virtual Private Cloud (VPC), customer-managed
- AI Platform, DataRobot-managed
In a multi-tenant SaaS architecture, multiple customers share a single instance of the DataRobot application, running on a shared infrastructure. This means that the customers do not have their own dedicated instance of the software, and their data and operations are potentially stored and running alongside other customers, while still being isolated through various security controls. This is what our DataRobot Managed Cloud offers.
In a DataRobot context, multi-tenant SaaS is a single core DataRobot app (app.datarobot.com), a core set of instances/nodes. All customers are using the same job queue & resources pool.
In single-tenant, we instead run a custom environment for each user & connect to them with a private connection. This means that resources are dedicated to a single customer and allows for more restriction of access AND more customizability.
- Single-tenant = We manage a cloud install for one customer.
- Multi-tenant = We manage multiple customers on one instance—this is https://app.datarobot.com/
In a single-tenant environment, one customer's resource load is isolated from any other customer, which avoids someone's extremely large and resource-intensive job affecting others. That said, we isolate our workers, so even if a large working job is running on one user it doesn’t affect other users. We also have worker limits to prevent one user from hogging all the workers.
Ah okay, I see...
Single-tenant's more rigid separation is a way to balance the benefits of on-prem (privacy, dedicated resources, etc.) and the benefits of cloud (don't have to upkeep your own servers/hardware, software updating and general maintenance is handled by DR, etc.).
Thank you very much Robot 2 (and 3)... I understand this concept much better now!
Glad I could help clarify it a bit! Note that I'm not directly involved in single-tenant development, so I don't have details on how we're implementing it, but this is accurate as to the general motivation to host single-tenant SaaS options alongside our multi-tenant environments.
Single tenant: you rent an apartment. When you're not using it, nobody else is. You can leave your stuff there without being concerned that others will mess with it.
Multi tenant: you stay in a hotel room.
There is another analogy in ELI5, too.