22 Multitenant Software
Hello students,
In this blog, we delve on Multitenant software. As we have known through our Virtualization assignment, Multitenancy is all about taking one physical thing shared with multiple customer.
Cloud implements Multitenancy at all levels, from hardware to software, from infrastructure to platform to software.
Virtualization is an example of using one physical machine and creating multiple virtual machines from it.
One processor have multiple cores that can be shared with multiple tasks from different customers.
A network device with multiple ports can be divided into different virtual networks utilized by different customers.
Multitenancy is about supporting multiple entities and hence Multitenancy is all about Multiple Entity Support.
Multitenancy in achieved in SaaS using three techniques
Single Schema Model
Meta-Data Customization
Multiple Schema Model
Single Schema Model
A Schema refers to the design. In databases it refers to tables, fields, keys that are defined. Single Schema Model refers to schema of single database utilized for multiple entities/customers/users.
Single Schema Model uses primary keys and foreign keys to differentiate one customer from another.
Example an instagram is a single software but it supports multiple users/customers/entities by having a UserID for each user. When the user accesses the instagram app, he or she can see only the records, images, videos which has been attributed with his or her UserID only.
Meta-Data Customization
Meta-Data Customization Technique is dynamic data model similar to No SQL format, where each customer/user/entity may or may not necessary have the same attributes/fields associated with them.
User 1 may have First Name and Last Name defined in database whereas User 2 may First Name, Last Name and Hobby. Every user has its own customized data that is supported by NoSQL database types.
Multitenancy is provided by the meta-data customized technique to different customers even if their meta-data is not same for these customers.
Multiple Schema Model
Whereas Single Schema Model and Meta-Data Customized technique utilize one database (SQL or no SQL, static or dynamic) for each user, the Multiple Schema Model eliminates the complexity and maintains separate database for each customer. Its similar to Microservices architecture that creates a separate service and its own database for each service type.
Multitenancy on Cloud
AWS cloud provider uses EC2 service to create separate virtual machine for each customer. AWS uses serverless computing model such as Lambda where the .NodeJS common platform is managed by AWS cloud. Each user can create its own Lambda function which runs on this shared NodeJS platform managed and controlled by AWS. One platform shared with multiple entities/customers/users.
Google Cloud Provider uses its AppEngine to provide common platforms to run Python, Java, Go program. Google Cloud Provider has its own common data store too which is shared with all users using multitenancy software techniques.
Multitenancy and Enterprises
In big enterprise organization, where there is a hierarchy, a CEO has all access to financial reports whereas a HR person has access to only employee reports.
One possible way to manage access is to define access for each user. But such an approach is tedious whenever new user is added/modified in an enterprise organization.
One can instead create data access business rules for different roles instead of different users in the database. You manage multitenancy by simply allowing/deny access to roles. You can provide new access to each role. If the user X is in HR role in database, then provide employee report access. If the user Y is in CEO role in database, then provide financial report access.
Multi-tenancy is very important feature that enables efficiency, productivity, economic scalability and its the core technique used by any cloud provider.
For more details, go through presentation 1 and presentation 2
Thank you.
Comments
Post a Comment