What is a multi-tenant software application and when does it make sense. This covers the advantages and disadvantages of multi-tenancy and the variations. Also covered are some patterns and concerns.
Advantages of Multi-tenant
CopyrightWalling Info Systems LLC. All rights reserved
Lower hardware requirements
Reduced maintenance
Single consistent codebase
Reduced long term cost
Collaboration and integration
Improved quality
6.
Disadvantages
Copyright Walling InfoSystems LLC. All rights reserved
Reduced flexibility
More complex architecture
Higher initial cost
Client concerns about data isolation
7.
Key Concepts
Copyright WallingInfo Systems LLC. All rights reserved
Intermediary filter
Strong security system with ACLs
Encrypt critical data
Impersonation for troubleshooting and support
8.
Connecting Users toTenants
Copyright Walling Info Systems LLC. All rights reserved
Tenant can be identified by
Domain/sub-domain
Tenant Id on login form
Email address – must be unique
Contact Info
Copyright WallingInfo Systems LLC. All rights reserved
Email: jwalling@wallingis.com
LinkedIn: https://www.linkedin.com/in/jwalling/
Twitter: @joewalling
GitHub: https://github.com/joewalling
Take a look at
github.com/joewalling/reactadvantage for a react
starter kit that lets you build software quickly.
Editor's Notes
#3 A typical application gets created for a client and an application server and webserver get set up for that company. Now when a second and 3d company want the same functionality, each one gets set up with an application and database server. The same thing happens for additional companies using the software.
#4 In this multi-tenant case, a single application server and database server are providing the functionality for all of the companies.
#5 In this multi-tenant case a single application server is used, but the data for each company is partitioned into it’s own database. Note that there is an option between these 2 images and that is using a single database with multiple schemas in a single database. The previous option with a single database results in a hardware savings over having multiple databases..
#6 Reduces the required resources since they are shared by all of the tenants
#7 Higher initial cost is primarily due to the more complex software architecture and code associated with that.
#9 Issues with requiring them to specify a tenant. How can you make it easier for them.