Answer the question
In order to leave comments, you need to log in
SaaS architecture
Hello!
A question about the approach to building a SaaS service. You need to develop a massive SaaS service. Which approach will you take?
1. A copy of the system with its own database is installed for each client (perhaps on a separate computing unit). An example is Microsoft Exchange.
2. The system is written taking into account many clients, does not require separate installations and works in a single database. An example is Basecamp.
3. Another approach - describe.
Answer the question
In order to leave comments, you need to log in
It is not entirely clear what kind of SaaS is meant. For some reason, I immediately thought of a service like Amazon.
Would use Citrix XEN or Eucalyptus
It seems to me that it is better to choose the third point:
The system must be written for the second option, but tools should be provided for transferring some clients to the first option and vice versa.
I think it depends on the scale. If the service is really massive, then the second option looks more logical, since there is less overhead for individual databases for each user. If you do not provide direct access to the DBMS in one way or another (and most likely not, since this is not relevant in SaaS), then the issue of security at the DBMS level will not affect you, and the work of many clients in a single database (it doesn’t even matter in one circuit or not) will not cause problems.
But, in my opinion, this is not the most fundamental issue in the SaaS architecture, and it (as an implementation detail, in general) will be hidden from programmers behind some layer :)
I also ask this question and lean towards the second option, but only because of the specificity of my SaaS: work without interruption 24 hours a day, 7 days a week and full customization / finishing / development for the needs of each specific client. I think that there will be such a scatter of variations of the service that it will not fit into one database. In addition, IMHO, it is easier to expand - by purchasing new hardware. One client - one instance, and no confusion.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question