Treb Ryan is chief executive of OpSource, a company that specializes in enterprise cloud and managed hosting. In a recent interview with Forbes, Ryan explains his analysis of how the multi-tenant architecture used for most large software-as-a-service applications will become dominant and present a challenge to the relevance and importance of a large amount of open source software.
Forbes: I have argued that SaaS applications (See "The Next Wave of SaaS") can safely ignore multi-tenancy and instead be run on a single-tenant basis as distributed collections of applications. You argue this model quickly runs out of gas as scale increases. Why?
Treb Ryan: At OpSource we specialize in hosting software-as-a-service applications for commercial vendors. Many vendors arrive with their applications in a single-tenant architecture. If they meet with success, they find that they are forced to rearchitect their code to a multi-tenant model. This is not easy and causes some pain and delays.
The difference between the two architectures is the complexity of change management and ease of integration. Updating the code for a multi-tenant application means rolling out and testing a single instance of the application. In single-tenant, virtually deployed applications you have to roll out and test the code for every single customer.
Once you get past 100 customers this gets extremely onerous. In the multi-tenant model, almost everything is shared at the appropriate layers of the application. This also has the advantage of having only one integration point for outside Web services, where in single-tenant applications Web services need to integrate with each individual customer.
Why are the single-tenant apps forced to go to multi-tenancy?
Look at the way computing is going. The fat client and client/server architectures have reached end of life. Almost everything is becoming a Web app. When that happens, you have to have the application on the server and you face the choice between single and multi-tenancy.
For the largest-traffic apps, nobody argues that single tenancy will work. Yahoo and Google Mail, box.net, etc., all have to be multi-tenant. But not all apps are going to have that much traffic. So, lots of vendors try to convert formerly on-premise software to single-tenant SaaS. It works for a while, but falls apart way faster than people expect.
Doesn't the automation of IT make things more consistent and manageable at scale? At what level of scale does the distributed model fall apart?
For infrastructure, it does seem possible to have millions of the same instances of VMs and storage running and managed automatically. It certainly seems like that should be extended to single-tenant SaaS, but in our experience the model fails way early.
I'm not going to say how many virtual machines does the model in, but it is not nearly as many as most people guess. The problem is that the uniformity of configuration of infrastructure is several orders of magnitude less complex than applications.
Even though it seems like you should be able to, you just can't keep all those separate VMs used in a single-tenant SaaS model in sync.
So what does this have to do with Open Source?
Open source by and large was created for the single-tenant architecture. There are companies like Acquia that have created multi-tenant versions of Drupal for their commercial hosting service, but that was done by the founders of the project.
I don't know if they have made the multi-tenant part of it open source. But it's a lot of work, it wouldn't surprise me if they kept it to themselves.
But the bulk of use of open source is not going to be easily converted to a multi-tenant form. So when you set out to create a Web app, which I argue is going to have to be multi-tenant to achieve scale, you are going to have to do a lot of heavy lifting.
Are you saying that all open source has to be multi-tenant to be useful?
No, but when it comes to building applications, until open source projects support multi-tenant architectures, open source won't be the accelerator that it once was for applications that are going to scale. It is not easy to retrofit single-tenant applications to a multi-tenant architecture.
What do you expect will happen?
The ability to rapidly create multi-tenant architectures will be a very useful skill. I suspect that the open source community will address this in an organized manner for the most important components.
Commercial firms will of course step in with offerings to make open source multi-tenant. But in the end, a lot of open source won't be converted.
Don't get me wrong, that software won't shrivel up and die, but it also won't be involved in what is clearly going to be the main event for developers: multi-tenant applications.