logo
Contact Us

Features

Multi-Tenant Architecture: Enhancing Resource Utilization and Data Security

Welcome to an exploration multi-tenant architecture - it’s all about resource utilization and data security for software. This post will provide in-depth insights into multi-tenancy, its benefits and how companies like Salesforce use it. You’ll also see how NebulaGraph Enterprise v5.0 has embraced this architecture in its product design.

What is multi-tenancy?

Tenants are equivalent to the "instance" concept of traditional databases to a certain extent. Tenants are completely isolated from each other. In terms of data security, cross-tenant data access is not allowed to ensure that there is no risk of user data assets being leaked. In terms of resource usage, tenants "exclusively" occupy their resource quotas. Generally speaking, a tenant is both a container for various database objects and a container for resources (CPU, Memory, IO, etc.).

Multi-tenancy in the context of databases means a single instance of software serves multiple users or tenants. In a multi-tenant database, the data for all tenants is stored in one database which can be either a physical or virtual one. The data for each tenant is separated from the data of other tenants by a simple partitioning of the database or by more complex methods like encryption or separate schemas for each tenant.

Multi-tenant architecture is used in scenarios where multiple users or organizations need to access the same database without access to each other’s data. For example, a SaaS provider would use multi-tenant management to provide database services to multiple customers using the same underlying software and hardware.

How Multi-Tenancy Works

Multi-tenant architecture creates separate, isolated environments within a single physical infrastructure, like a virtual machine, server or cloud platform. This is done by partitioning the data storage and processing; each tenant has their own dedicated space in the system. A tenant interacts with the app and can access their own data.

image

Image source: https://medium.com/@harish.somasundar14/database-multi-tenancy-7c8dbe848d50

Because each multi-tenant environment is separate from each other, they can be customized to meet the needs of each individual tenant without affecting other environments. Tenants can customize features like user interface and data security settings for their environment. They can also have different rules for each domain for access control, resource allocation and feature availability.

Benefits of Multi-tenant Architecture

Business can benefit from multi-tenant architecture in software while minimizing its challenges, including improved security, cost efficiency, and better resource utilization, etc.

  • Data Security: Multi-tenant architecture with resource isolation secures data by keeping each tenant’s data separate and preventing one tenant from accessing another’s data. Plus it simplifies security management as security policies can be applied across all tenants.
  • Cost Efficiency: Multi-tenancy provides cost savings as multiple tenants can share the same database infrastructure, no need for separate hardware and software for each tenant. By sharing resources and reducing the need for dedicated resources for each tenant, the company can cut down operational and maintenance costs. Plus automated operation and maintenance tools associated with multi-tenant management can reduce time and effort for routine tasks leading to more cost savings.
  • Efficient Resource Utilization: In a large organization, different teams or departments may need to access and work with the same resources. With multi-tenancy a single instance of a software application can serve multiple tenants (i.e. teams or departments) thus maximizing resource utilization and reducing redundancy.
  • Scalability: Multi-tenant architecture allows for easy scalability as scaling up is more efficient and less disruptive. When the company grows and more teams need access to the database new tenants can be added without the need for additional software instances.g
  • Simplified Management: With multi-tenant architecture, managing updates, implementing changes, and troubleshooting issues can be done from a single point, simplifying the overall management process.

Real-life Cases of Multi-tenant Architecture

Below are two examples for a real-life use case of multi-tenant architecture. In both examples, multi-tenant management is key to efficient resource utilization, cost savings and high data security and performance.

Salesforce leverages multi-tenant architecture to deliver its Customer Relationship Management (CRM) software as a service. This architecture allows Salesforce to provide a single instance of its application to multiple customers, which reduces costs, simplifies maintenance and upgrades, and allows for scalability as the number of clients grows.

Another industry example is the telecom sector. Telecom companies use multi-tenant architecture in their billing systems. These systems need to manage data for millions of customers, each with their own plans, usage patterns and billing cycles. By using multi-tenant architecture, these companies can isolate each customer’s data while managing resources efficiently, bill correctly and perform well.

Examples of Databases with Multi-Tenant Architecture

Multi-tenancy is often used in Software as a Service (SaaS) applications where it can provide cost savings and scalability. For databases it’s more common in distributed databases and cloud-based systems where multiple users or tenants can share resources while keeping each other’s data private. Here are a few examples of distributed databases that support multi-tenant management and resource isolation:

  • Apache Cassandra: Open-source, highly scalable and distributed NoSQL database that can handle large amounts of data across many commodity servers. It supports multi-tenancy and resource isolation, great for applications that need scalability and high availability.
  • Microsoft Azure Cosmos DB: A globally distributed, multi-model database service that provides multi-tenancy and resource isolation. It's designed for applications with globally distributed users who need low latency access to data.
  • NebulaGraph: Open-source, distributed graph database for super large-scale graphs with milliseconds of latency. Highly performant, horizontally scalable and fault-tolerant. Enterprise v5.0 has multi-tenant management and native GQL support.

Multi-Tenant Architecture and NebulaGraph Enterprise v5.0

Graph databases as the underlying infrastructure have become platform oriented when integrated with real life business. This has led many tech teams to build graph based platforms to serve their business needs. Hence multi-tenant architecture has become a must have feature.

NebulaGraph Enterprise saw this trend and introduced multi-tenant architecture in its design since v5.0. This allows tenants to be managed in a single pane of glass, including support for third-party single sign on. The architecture also follows the principle of least privilege (PoLP) for authorization. This means users are given the minimum access – or permissions – they need to do their job. This reduces the risk of data breaches and unauthorized access.

The multi-tenant architecture of NebulaGraph Enterprise v5.0 also separates metadata management and data management, as well as permissions and roles. This separation aids in maintaining the integrity and security of data and user roles. Moreover, NebulaGraph architecture allows the same cluster resources to be shared, while different clusters have their own resources, permissions and data. This separation is necessary to meet performance targets and privacy and security requirements.

In summary, NebulaGraph multi-tenant architecture is all about resource utilization and data security and privacy. It serves the evolving needs of businesses that are building graph based platforms. If you are interested in trying NebulaGraph Enterprise v5.0, please contact us to try it out.