The 5th article in our Jargon Series covers Multitenancy (aka multi tenanted software). This is a type of software architecture – how software is distributed to its users
Multitenancy is where a single instance of a software application runs on a server and serves multiple people (referred to as tenants) who all share common access to the software.
Think of it in terms of another way in which tenants are present – housing. Imagine a large building with several flats/ apartments built into it. This enables the possibility of providing better resources. For example think of those fancy apartments in central London with Gyms, cinemas, swimming pools etc. The costs of these can be shared across all the tenants of the building but you also have to share these facilities with the other tenants. Compare this to a single house and the costs required to have these facilities – they are a lot higher, but they would be solely yours meaning if want to swim naked in your swimming pool you can (this is frowned on in shared pools – at least in my experience!).
Applying this to software, tenants may have the ability to customise/ configure some parts of the package – for example the colour scheme, UI, dashboards or create their own rules/ workflow but they are unable to customise the underlying code of the software. Again going back to our housing example you could paint your internal walls, get new carpeting, furniture etc. to individualise it but you wouldn’t be able to do more drastic improvements like building an extension and you couldn’t decorate the shared communal areas like the stairways, halls or the aforementioned fancy facilities like the gym.
Multitenancy is highly prevalent in cloud based software and is popular because – as mentioned above it can be a very cost effective way of running software as development, support & maintenance costs are shared meaning software patches/ updates only need to be applied once and all the tenants software is accordingly updated.
Multitenancy also means that people in the same client environment can share data but will be isolated against other tenants in differing client environments. This means your data can be shared across your organisation but other users of the software outside your organisation cannot access the data.
It does however mean that you get a “vanilla” solution – it might not do everything you need it to do – even with the customisation available to you, consequently It also means you have very little influence over the software vendor supplying the solution – you are just one customer of many and you will not have the clout to get them to make changes to their software to make it meet your needs.
Hopefully the above gives a good description of multitenancy and its advantages & disadvantages. As a software provider it’s certainly a route we will be looking to take when we launch our first product in 2017!