Share
239 Posts.
lightbulb Created with Sketch. 121
clock Created with Sketch.
26/04/23
10:18
Share
Originally posted by mikesheen:
↑
multi-tenanting in the context of hosted software means that one app serves multiple users / customers (tenants) - it's the basis of many Software As a Service (SAaS) platforms today. Done properly, onboarding a new user / customer means simply a row added to a table, and the user can now use the service - no great effort expended to accommodate the new user. All the new users requests pass through the same app, same servers but they are limited to accessing only their own data. It means operational costs are much more easily spread across the entire user base and generally costs per user are greatly reduced - however it should be noted that the cost per user may actually be quite high until a critical mass of user numbers is reached. Several complex issues need to be managed - such as how to deliver updates / changes in a controlled manner - you shouldn't stream updates to all users immediately in case of a catastrophic error, so you want to stage that gradually - typically in systems today you'd split your customers into shards - say one tenth of the users, and update one shard at a time, monitoring after each update is rolled out and ready to react to problems before rolling out the next shard.
Expand
You should also have added that it needs to be architected that way from the start or you need to rebuild the solution to achieve multi-tenancy, which is not as easy as it sounds. You also have to build the provisioning tools, monitoring, billing etc I havnt seen any discussions on how this has been done, trialed etc