9
I’m in the following situation:
I have a web application that accesses the data through a C#Webapi. I need to apply the concept of multitenancy in order to allow my application to be accessed by multiple customers and for each customer to access their database individually.
Faced with this need, I researched in Sopt and found the following questions:
Web application for multiple people
Databases for different customers
As for the concept I understood, but my doubt is about deploy my Webapi and what would be the best practice:
Deploy and host a single instance of the API on IIS (and redirect access to the database via code)?
Or I should perform the Deploy individualized, ie host numerous instances of the API in IIS, each accessing its database?
In case the second option is the most viable, is there any way to make this multiple deploy more automated? Is there any cloud feature that enables this deployment scheduling (Azure, Amazon, etc...)?
Clarification - when you say 'each one accessing your database', you mean that each customer will have their data stored in unique database instances, or was just an expression (data from multiple clients in the same database)?
– OnoSendai
@Meiaesquerda, is exactly that, each client with a unique database instance. To get an idea, currently our need is for around 100 customers.
– Julio Borges
Its cost of maintaining the structure will be considerably higher. Also imagine that whenever you change the template the patch should be applied in 100+ instances - this is if you don’t allow banks to be in different versions of patching.
– OnoSendai
@Meiaesquerda, really, the intention of this question is to raise what would be the best practice and what is most used or how the community acts in this type of situation.
– Julio Borges
A question. Whenever there is an update all customers should be updated?
– Randrade
@Randrade, here comes the famous one... Today yes all will have the same update, more can occur situations where there is something specific, the way we work today this is solved programmatically with Patterns and object orientation.
– Julio Borges
This system uses the model Saas (Software as a Service)?
– Randrade
@Randrade, yes, our initial idea is this.
– Julio Borges