Multitenancy is referred as important characteristics of all cloud application. There are many reasons why cloud applications today are being designed to support multi tenancy. Today I am going to discuss multi tenancy in cloud application (of course related to Windows Azure) based on the articles and posts I have gone through.
Wikipedia – Multi tenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple clients (or in other words “tenants”).
Dictionary meaning of “Tenant” say, people who take resources on lease. In Azure, we acting as a customer take cloud resources on lease therefore; customers or clients of application are referred as “Tenants”.
Single-Tenant vs Multi-Tenant applications –
Single Tenant Applications – Has a separate, logical instance of the application for each customer or client. For example, if there are 5 customers that require using the application then, we will have 5 different OS, 5 copies of database and 5 copies of the application. This is illustrated in following diagram –
Multi Tenant Application – Has a single, logical instance of the application which shared by many customers. For example, if there are 5 customers that require using the application then, we will have only 1 OS, 1 database, and 1 application serving all the clients.
In Windows Azure, one cannot stick to the multi tenant or single tenant application design. Any Azure application is made of multiple components; out of which some may be single tenanted or multi tenanted.
Following are the considerations which should be taken into account when you are planning to design multi tenant or single tenant application using windows Azure. The choice of design will depend on application requirements.
Application Stability – A multi tenant application is more vulnerable to system failures which can bring down entire application and affect the entire customers using it. In Single tenant, if one of the instance fails then only a particular customer is affected and rest of the whole system remain intact. This risk of multi tenant application can be overcome by increasing the instance count of an application. In such case the application will become, Multi Tenant – Multi Instance model.
Maintaining Code Base – If you are implementing single tenant architecture then you will have to maintain separate code base for each existing customer and new customers who joins your application. This will increase the support and maintenance cost rapidly. However it maintaining separate code base for each customer when they have different requirements will be good idea.
In case of multi tenant application, you need to maintain only one copy of code base which is easier and saves maintenance cost.
Handling Application Upgrades and Monitoring Applications – Applying application updates in case of multi tenant application will be easier and hence reduces maintenance efforts. All of the customer will receive the latest updates of your application. Also in case of single tenant application, user will have to maintain and monitor different versions of the same application.
Application Performance – Application performance in case of single tenant application will be always better as only one customer or tenant is using the application and there is no sharing of capacity (or resources) among multiple customers.
The application performance will be lesser in multi tenant application as compared to single tenant application. However, application performance can be tweaked in Windows Azure for multi tenant application using various Azure features and solutions.
Providing Trials – In case of single tenant application, you will need to provide separate application trial for every customer. Hence it will increase the maintenance complexity. In case of multi tenant application, provisioning trial will be easier task.
Managing Application Costs – In multi tenant application, all tenants will share the cost. Hence cost per tenant will be reduced as compared to single tenant application. So always strive to reduce the cost by sharing application with more and more tenants. But let sharing not affect adversely by reducing the application performance.
Conclusion - As a matter of fact, I will say that, when you need high degree of customization with every client then go for single tenant application. But make sure that, you limit your application to few components only.
When there is no customization per client then multi tenant application is always a good choice and it is cost saving solution.
Hope above information gives you basic idea about Azure multi tenant and single tenant application architectural considerations.
Cheers…
Happy Clouding!!!
This risk of multi tenant application can be overcome by increasing the instance count of an application. In such case the application will become, Multi Tenant – Multi Instance model.
ReplyDeleteHere even if we have multiple instances while upgrading the application with some new features all instances will recycle right? so how can we ensure other customers will not have downtime?
Use update domain concept to keep at least an instance up while updating your app.
DeleteHi,
ReplyDeleteI've been following this post since a while and wanted to thank you for your excellent work.
I may just ask you wither you have any "Audit SCOM Infrastructure Guide" or any kind of documentation related to auditing scom infra itself.
Many thanks for your help.
azure downtime
ReplyDeleteHai Author, Very Good informative blog post,
Thanks for Sharing
Well written post. I appreciate your guidance for sharing about Windows Azure . I really need to know about it. Great work!
ReplyDeleteVery good information!! this may useful to the users for more updates on Azure Azure Online Course Bangalore
ReplyDeleteYou have provides an nice article sir, And i hope this will be useful for many people.and i am waiting for your next post keep on updating article sir.for more details visit our website..Windows Azure Training in Ameerpet
ReplyDeleteVery excellent blog.please visit our website.
ReplyDeleteWindows Azure Training in Hyderabad
nice post..
ReplyDeleteAbacus institute Training Class in Chennai
nice post..SAP BUSINESS ONE for Dhall solution
ReplyDeleteERP for food processing solutions
ERP for masala solution
SAP BUSINESS ONE for masala solution
ERP for Rice mill solution
Nice blog
ReplyDeleteThank you sharing!!!
https://sathyatech.com
Nice Article!!!
ReplyDeleteUseful blog
ReplyDeleteThank you for sharing
Thanks for your post! I think there are many other people who are interested in them just like me! How long does it take to complete this article Blockchain Training in Hyderabad
ReplyDeleteArticle very interisting, thanks for sharing information
ReplyDeletePengobatan Atasi Susah Buang Air Kecil (Susah Kencing)
Cara Alami Mengobati Abses Payudara
Cara Alami Mengobati Infeksi Rahim
Cara Efektif Mengobati Ginjal Bengkak
Cara Alami Mengobati Benjolan Di Ketiak Tanpa Operasi
Tips Mengobati Abses Kulit
This post is worth for me. Thank you for sharing.
ReplyDeleteERP in Chennai
ERP Software in Chennai
SAP Business One in Chennai
SAP Hana in Chennai
SAP r3 in Chennai
Which is the best training institute for PLC, SCADA, and DCS, and where is it located in India?
ReplyDeleteLIVEWIRE is in association with 250+ corporates, who grab candidates from our centres when they match their job requirement. We offer all these opening to the students.Get trained through an ISO certified institute. Our course completion certificate and material are globally recognized. If you want to more details contact us: #LivewireVelachery, #PLCTraininginChennai,#PLCTrainingInstituteinChennai,#PLCTraininginVelachery, 9384409662
nice post..
ReplyDeleteSAP Business One in Chennai
Sap Business One Company in Chennai
Sap Business One Partners in chennai
SAP Business One Authorized Partners in Chennai
thanks for Providing a Good Information
ReplyDeleteanyone want to learn advance devops tools or devops online training visit:
DevOps Training
DevOps Online Training
A very nice guide. I will definitely follow these tips. Thank you for sharing such detailed article. I am learning a lot from you.
ReplyDeletepython Training institute in Chennai
python Training institute in Bangalore
Nice Blog, thank you so much for sharing this blog.
ReplyDeleteBest AngularJS Training Institute in Bangalore
I red your blog... its really awesom... Thanks for sharing with us...
ReplyDeletePython Training in Bangalore
Best Python Training in Bangalore
Tally course in Madurai
Software Testing Course in Coimbatore
Spoken English Class in Coimbatore
Web Designing Course in Coimbatore
Tally Course in Coimbatore
Tally Training Coimbatore
great article.thanks for sharing info
ReplyDeletesalesforce training in hyderabad
devops training in hyderabad
data science course in hyderabad
big data hadoop training in hyderabad
non veg pickles in hyderbad
Great Article. Thanks for sharing info.
ReplyDeleteDigital Marketing Course in Hyderabad
Digital Marketing Training in Hyderabad
AWS Training in Hyderabad
SEO Training in Hyderabad
Great Article. Thanks for sharing info.
ReplyDeleteSEO Training in Hyderabad
Online Digital Marketing Courses in Hyderabad
Adwords Training in Hyderabad
Social Media Marketing Training in Hyderabad
Google Analytics Training in Hyderabad
Great Article. Thanks for sharing info.
ReplyDeleteIELTS Coaching in Hyderabad
ServiceNow Training in Hyderabad
SharePoint Training in Hyderabad
Tableau Training in Hyderabad
SAP FICO Training in Hyderabad
Great Article. Thanks for sharing info.
ReplyDeleteSAP ABAP Training in Hyderabad
SAP FICO Training in Hyderabad
AWS Training in Hyderabad
Salesforce Training in Hyderabad
Selenium Training in Hyderabad
Great Article. Thanks for sharing info.
ReplyDeleteWorkday Training in Hyderabad
IELTS Coaching in Hyderabad
Salesforce Training in Hyderabad
SAP FICO Training in Hyderabad