Multitenancy 101

The shift from a traditional desktop development and deployment model to one where the cloud is the key way to develop, deploy and manage applications is happening. However, when talking to product managers and architects, the importance of multitenancy is still a frequently debated question: “Do I have to be multitenant in my first release?” In this blog post, I would like to help demystify this concept, and also share with you my perspectives on why multitenancy is an important up-front business consideration because it has many downstream technical and financial implications.

Multitenancy refers to the ability of services to be offered to multiple tenants in a way so that each tenant operates as logically isolated while, in fact, using physically shared resources.To make this concept easier to understand, let’s look at an apartment building versus a house:

Sharing for cost reduction and convenience

Living in an apartment allows you (a tenant) to enjoy a nice swimming pool without having the hassle to maintain it yourself. Because you are sharing many of the facilities with other tenants, the total cost of ownership is lower, for example, your property tax. Living in an apartment also means you are implicitly sharing its underlying infrastructure, for example the heating system. These concepts are very similar to sharing your application in the cloud, the more sharing, the cheaper the cost per tenant. Because you are sharing the application, you are also sharing the underlying operating system, hardware, and middleware that the application is running on, including their version.

In addition to cost consideration, there are also other downstream design considerations when deciding to buy a house versus an apartment. For example, what kind of furniture will fit the best, what kinds of pets can you keep? These decisions are similar to the design your product needs to consider for multitenant versus single tenant. How are you going to ensure a tenant’s data is separated from another tenant’s? Do you want to allow each tenant to customize the UI, say, to add their own company logo? The answers to these questions can affect the design of your application.

Sharing and security

You might be thinking: OK, I get this now, but what about security with all this sharing? The more I think about it, the more it seems a little scary-do I really want to be multitenant?

Whether you are living in an apartment or in your own house, you still have your own key so your assets can still be secured in the same way. Sharing a common security infrastructure does not mean that you are less secure, in fact it can be quite the opposite have you noticed that most apartments have 24×7 on-site security guards? Because you can now onboard more tenants to your solution quickly, you can increase your development budget and afford more advanced security implementations.

Collaborative multitenancy

In conclusion, cloud computing is a shift from traditional single-tenant approach of software development to a multitenant approach that is scalable and global. Couple this with the mobile transformation across enterprise, collaboration between companies, partners, and friends becomes easier and easier. This reminds me of the urban community gardens—tenants can create a garden of their own choice, but they can also make social connections, build on each other’s ideas and generate more opportunities.

For more technical information about how to transform your solution from single tenant to multitenant, see my article on developerWorks.

Photos in order via Flickr: 1, 2, 3, 4, 5.

Share this post:

Share on LinkedIn

Add Comment
No Comments

Leave a Reply

Your email address will not be published.Required fields are marked *

More Archive Stories

21st century alchemy: Spinning clouds and weaving magic

Entrepreneurs have been around since the dawn of time. They are the engineers of innovation in each and every epoch. Contrary to popular belief, the modern concept of an entrepreneur is essentially European, derived from the French entreprendre (to undertake) in the late nineteenth century. Turing – the entrepreneur It won’t surprise you to learn […]

Considerations of designing private cloud solutions

A private cloud solution is a cloud computing platform that is implemented within the corporate firewall, under the control of the IT department. A private cloud is designed to offer the same features and benefits of public cloud offerings, but removes a number of challenges of public cloud solutions including control over enterprise and customer […]

Introduction to the Java API of IBM SmartCloud Enterprise

In a previous blog, "What are the IBM SmartCloud Enterprise APIs?" I explained the types of APIs provided by the IBM SmartCloud Enterprise. Now, I explain in more detail the Java API that is provided by the IBM SmartCloud Enterprise platform. This blog also contains a video that demonstrates the IBM SmartCloud Enterprise Java API.