asp.net core SaaS architecture
Hello,
I'm curious about your opinions regarding a SaaS platform and the architecture of it.
There are a few options; multi-tenant, single-tenant, hybrid solution, ... (both for web+db)
Specifications
- One application that will handle content management (CMS)
- Client specific changes will be made generic so that all clients have the same functionality
- Each client has a separated website (ClientWebsite) which will get data that is managed by the CMS and store data (ecommerce for example)
- ClientWebsite can be a MVC website, API+SPA, ... It only shares the core and data layers with the CMS
Structure
- One application to manage data (CMS) shared by all clients (code is shared)
- Each client has their own website (ClientWebsite)
Questions
- Should each client have their own instance of the CMS? Is this maintainable?
- When the CMS gets updated, how should it be deployed? (in case of having one instance of the CMS for each client)
- One database for each client?
- What if there are schema changes in the CMS? One CMS for all clients means that if the CMS gets updated, all the ClientWebsites need an update as well (otherwise the db schema doesn't match the code)
- Client specific changes made generic, is this achievable?
- How can you scale this for 100, 1000s of clients?
Does anyone have experience with this kind of architecture? What are the best practices, do's and don'ts? I've read some articles (including microsoft - azure) but I can't really decide the best architecture for this case. Any advise is welcome.
0 comments:
Post a Comment