The importance of SaaS multi-tenancy derives from the very nature of consumer operations in the cloud. The DNA of cloud software is different from enterprise specific custom software. Cloud software is designed to interface with a variety of operating systems and platforms. Standardized operating practices are imperatives for their successful deployment and SaaS multi-tenancy at a high level of isolation must allow multiple users to share a single instance of a runtime stack.
Multi-tenancy is often contrasted with multi-instance architecture. Multi-instance architectures set up different software instances of an application for client organizations. SaaS multi-tenancy at a very high level of isolation means that a single runtime stack component instance can be shared by multiple customers with customizations at granular levels of deployment.
Multi-tenant software architectures are built around a conceptual core that supports multi-tenancy. Application code is shared between tenants and data is logically isolated from data belonging to other users. Metadata automatically associates the right data with the right user.
Cloud vendors can adopt a premium approach to multi-tenancy by providing individual users with individual databases or they can house multiple tenants in the same database with each tenant accessing a set of tables that are grouped into a schema, created for the tenant. The premium approach is expensive in terms of the investment in hardware and maintenance. It is ideal for customers who are willing to pay the little extra for security and customizability. The latter model is easier to implement and offers a moderate degree of logical data isolation. On the flip side is the fact that schemas are more difficult to restore in the event of a disaster. An alternate approach involves using the same database and the same set of tables to host multiple tenants’ data. The data is stored with tenant id that is associated with every record that is created by the tenant. This approach has the lowest security and developers incur additional development efforts for security. Restoration is difficult in the event of disaster.
The kind of SaaS multi-tenancy architecture you select for your enterprise must reconcile the competing benefits and demands of sharing and isolation. Ensure that the database architect has built security into every aspect of the database before you commit yourself to the specific system.