Multitenancy. You may ask me why I want to spend this Sunday morning talking about multitenancy. Well… two words – important and confusing. Now, with the announcement of Autodesk PLM 360, I expect conversations about multitenancy to happen more often and even create some turbulence during pre-sales cycles. So, let me step back and try Wikipedia link. Here is the definition:
Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance. Multitenancy is also regarded as one of the essential attributes of Cloud Computing.
The history of multitenancy goes to few computing paradigms we had in the past – time sharing and ASP (application service provider). Time sharing was very popular on mainframe (this is why many people consider mainframes as one of the technological roots of cloud computing). ASP concept when another company “hosted” product for customers is another early example service that influenced the current state of multitenancy.
Economic and Multitenancy
I’d like to start from the economic of multitenancy. Thinking about cloud software, multitenancy creates fundamentals for resource sharing. As a result, you can make the operational cost lower. It increases the ability to compete and provide more attractive price point for services. Hosting without multitenancy won’t provide such an advantage, since you will have to host server per customer. It obviously can bring an advantage of scale economy, but even so won’t be on the same level as multitenancy.
Technology, Complexity and Examples
The majority of enterprise applications developed during the last two decades were a single tenant. The target was “client-server” environment and data center. Even applications developed with “web architecture in mind” assumed database and application server dedicated to a customer. Multitenancy requires significant changes in architecture. Some of the enterprise software providers started to move their platform towards multitenancy. The majority of knowledge about development of multitenancy came from public web sites and SaaS application providers. The most famous example is salesforce.com. The architecture of salesforce.com assumes full multitenancy also on application and data level. If you want to deep your knowledge about how Salesforce platform designed, navigate to few available youtuble videos. Few slides below can give you high level view of Salesforce vision of multitenancy.
I can recommend you another interesting article about multitenancy from Microsoft. Navigate to the following link -Multi-Tenant Data Architecture. The document is relatively old 2006), but provides some interesting illustration about how multitenancy and data architecture can be designed. Take a look on the following picture illustrates Three Approaches to Managing Multi-Tenant Data:
There are obvious pros and cons in different solutions. Multitenancy has obvious advantages mentioned above. However, complexity and cost of development of a multitenant solution are higher than a single tenant alternative.
What is my conclusion? In my view, we are going to hear more about multitenancy. Cloud is disruptive. At the time, vendors are going to own servers and provide services, multitenancy will become one of the factors to improve profitability and decrease operational cost. At the same time, marketing will continue to use “buzzwords” to win a social marketing and pre-sale game. If you are a customer shopping for your first cloud solution, you better get yourself a bit educated about the topic of multitenancy. Just my thoughts…