MultiTenancy

1. Overview

1.1. Definition

Multitenancy is a software architecture where a single instance of a software application serves multiple customers, referred to as tenants. Each tenant's data is isolated and remains invisible to other tenants.

The strategic choices needed to facilitate the of this isolation is what makes this an interesting engineering exercise

1.2. Components:

  • Tenant: An individual user, a group, or an organization that uses the shared software service but experiences it as though it is solely dedicated to their use.
  • Instance: A single deployment of the software solution that supports multiple tenants.
  • Isolation: Techniques that keep tenant data and configurations separate from one another to ensure privacy and personalization.

1.3. Types of Multitenancy(Product Orientation):

  • Physical Multitenancy: Different physical machines host different tenants.
  • Virtual Multitenancy: Virtualization technology allows multiple tenants to share hardware resources.
  • Application-Level Multitenancy: A single application serves multiple tenants, typically providing each with a customizable experience.

1.4. Benefits:

  • Cost Efficiency: Reduced operational costs as resources are shared among tenants.
  • Scalability: Easier scaling since the architecture is designed to accommodate multiple tenants.
  • Simplified Management: Centralized management and updates for software applications.

1.5. Challenges:

  • Security Concerns: Potential risks of data breaches or leaks between tenants.
  • Customization: Balancing between offering shared resources and the customization needs of different tenants.
  • Performance: Ensuring that the performance is optimal and equitable across all tenants.

1.6. Applications:

  • Widely used in SaaS (Software as a Service)
  • Employed in cloud computing platforms to optimize resource utilization.

2. Data Isolation Mechanisms

2.1. Primal Types

  • Logical Isolation: Each tenant's data is stored in separate tables within a shared database, using unique identifiers to distinguish tenant data.
  • Dedicated Schema: Each tenant is assigned a unique database schema that comprises the necessary tables and views, ensuring separation at the database level.
  • Separate Databases: Each tenant has their own database instance, providing the highest level of data isolation but also higher resource usage.
  • Encryption: Data is encrypted at rest and in transit to prevent unauthorized access, with encryption keys managed per tenant.

2.2. Connections and Insights

  • Logical isolation balances resource efficiency with data separation, suitable for environments where cost is a concern.
  • Dedicated schema and separate databases increase isolation but might introduce higher complexity and costs.
  • Encryption serves as a critical layer of security across all types.

3. Explicit Aspects

3.1. QoS

4. Fundamental Aspects

5. Relevant Flavours

Tags::cs:meta: