Written by Sandra Suszterova |
Multitenancy is a software architecture that serves multiple users by delivering a single instance of software. It enables each user to access the data, configuration, user management, and other specific functionalities of a given instance.
Nowadays, multitenancy is a key feature of the cloud environment.
Before we dive into multitenancy, let's take a look at cloud computing and how it supports multitenancy.
Cloud Computing and Multitenancy
Cloud computing offers companies many benefits, including scalability of resources and cost-effectiveness. With cloud computing, you can deliver infrastructure to network architects, platforms to software developers, and software to end users. For more information on cloud computing, read our article “What Is Cloud Native?”
Image inspiration: Plesk
Today, most applications are delivered to customers and end users via the cloud as software as a service (SaaS). It allows many end users to access this software no matter their location or type of device. SaaS is supported by multitenancy — it guarantees users' access to a single application by allowing them to manage their interface without affecting other users.
Let's take a look at how multitenancy works and the benefits it brings to users.
Multitenancy, also known as multi-tenant architecture, refers to a software architecture in which one single instance of software can serve different users. These users are also known as tenants, and each tenant who is accessing the same instance has their own defined permissions.
Multitenancy gives companies the ability to deliver one application to many tenants, allowing them to access only relevant data through a single deployment.
Tenants can be individual users or a group of users, inside or outside of the company, who are somehow related to the business. Each tenant shares access to the environment, user management, configuration, and functionality of the application.
Let's review some examples of multitenancy from everyday life.
Examples of Multitenancy
Nowadays, most of us have a private bank account at a specific bank. You can manage the funds in your bank account — pay bills, transfer money to different accounts, or check your balance — but you are not able to access other customers' accounts.
Similarly, another example of multitenancy is Netflix. As a streaming service, it enables you to create your own account and enjoy watching various movies or series without limiting other users’ time or affecting their genre preferences.
In both examples, customers can access the same resources, and they know that there are many other accounts utilizing the same service but they can't see or manage them.
There are many other SaaS applications that are cloud-based and serve numerous groups of users, such as G-Mail, MS Office, and Zoom.
Image inspiration: Thecategorizer
Single-tenant vs. Multi-tenant Architecture
While establishing your business applications and managing and dividing access among your users, you can choose between multi-tenant architecture and single-tenant architecture.
Single-tenant architecture, the opposite of multi-tenant architecture, is provided by one instance serving only one tenant. Each customer has their own separate database and software instance, and there is no possibility that any other user could access it.
Imagine an application running on a server supported by independent infrastructure that was developed only for one specific user. Currently, they are the only one who uses this application frequently. This may appear to be an expensive solution due to its poor resource allocation and requirement for a highly controlled environment for every tenant.
On the other hand, a single-tenant solution gives a customer control over the entire architecture. It ensures that users will still be able to access and use the application without outages or decreased performance caused by numerous users accessing the application.
In contrast to single-tenant architecture, multi-tenant architecture is mainly used by multiple organizations or groups of users inside one organization to provide multiplicitous access for one instance.
Whereas single-tenant architecture can be deployed through private clouds or local servers, multi-tenant architecture can be deployed in all forms of clouds: private, hybrid, or public.
Benefits of Multitenancy
- Scalability: The most important advantage of multitenancy is scalability. It allows us to scale resources by adding or removing capacity and provide permissions to employees based on their professional needs in a multi-user application.
- Cost-effectiveness: When one application is used by multiple users, the cost of its environment is shared. You only pay for what you actually use. Similarly, you do not have to pay additional charges for managing new tenants, development, and maintenance. Cloud vendors cover these additional charges and we, as customers, avoid costly maintenance fees and only pay for our SaaS subscription.
- Security and privacy: While single-tenant architecture can secure your sensitive data better than multi-tenant architecture, multitenancy still allows you to keep each tenant's resource and interface private and secure by disabling other tenants’ access.
- Convenient maintenance: With multi-tenant architecture, you can manage your tenants through one instance. Every change made in your central interfaces, such as configurations, updates, and user provisioning, will appear in each tenant's interface.
- Easy deployment: Multitenancy simplifies the process of adding new customers by reducing the manual requirements to set up and launch the solution.
Drawbacks of Multitenancy
- Response time issues: Users may encounter the “noisy neighbor” effect which occurs when multiple users submit their requests at the same time. Subsequently, it may increase response time and slow down processing time for everyone.
- Downtimes: Cloud vendors can decide when to release new upgrades and features without notifying their customers. Users may experience downtime or lower performance as a result of vendor changes.
- Security risks: Security can be both a benefit and a disadvantage in a multi-tenant architecture. There is a chance that your resources could be exposed to third parties. All tenants having access to the same database could be a potential weakness.
Multitenancy in GoodData
GoodData offers an easily accessible analytical platform to analyze your data. Its multi-tenant functionality allows multiple users to access the same data source and manage their separate workspace. A workspace in GoodData's analytics platform refers to a space where you can load data, manage logical data models, create metrics, share visualizations and dashboards, and much more.
Multitenancy in GoodData is managed by workspace hierarchy, where there is a parent workspace connected to child workspaces. Every change made in the parent workspace will appear in each child workspace, but changes made in different child workspaces will not affect the parent workspace.
Ready to Learn More?
Looking for a multi-tenant solution? Try managing a multi-tenant environment in GoodData by downloading GoodData.CN Community Edition. You can also follow our tutorial for managing workspace hierarchy.
Written by Sandra Suszterova |