There are different schools of thought on what makes a true SaaS provider. Some believe that the first level of multi-tenancy where all the customers reside on a single instance down to the database schema level is the real SaaS provider. Others believe in a more hybrid approach that allows the customer to choose whether they want to reside in the same instance as other customers or prefer to have their own instance. At the end of the day, if I am a customer do I really care which SaaS model is implemented by the provider as long as the provider secures my data and ensures system uptime and performance that my business demands. Of course, there might be exceptions where for privacy reasons a customer might want his own instance.
This leads to the other point, which is if I am starting a SaaS company, what would be my strategy. Should I take a top down approach and build the applications to SaaS standards or should I take a bottoms-up approach and design my SaaS foundation/infrastructure first and then design my apps to run on this foundation. I would think the latter would be more beneficial since once you lay your foundation, it's more difficult to change. The level of abstraction as one move up the stack to the applications makes it easier to change.
So, then the real debate about who is a true SaaS provider should not be about the level of multi-tenancy but more about which provider can give me the uptime, performance, security and application functionality . Not that the multi-tenancy debate is less interesting or compelling but all it does is make for a good discussion.
That brings us to the core of SaaS which is the foundation as I call it. The foundation constitutes not just the infrastructure but also the shared components that are built on top of the infrastructure which the applications can consume. I will delve on the layers of SaaS foundation in my next blog. Until then, be safe, be SaaS-y.
Link to original post