In our conversations with companies, whether it is building new SaaS products or engineering legacy products to SaaS the question of multi-tenancy always comes up. Multi-tenancy is still a significant source of confusion and uncertainty when developing SaaS applications. We have encountered clients that have wasted considerable resources developing multi-tenancy when it should not have been a business priority, and others that have chosen the wrong development path not understanding that multi-tenancy was critical for their business. In this post we try to clear up many myths and confusions about multi-tenancy, and also provide a simple and practical classification of multi-tenant architectures that has helped us guide clients developing SaaS applications. In Part II of this post, we provide a model that can help companies decide whether to go multi-tenant or just develop a virtualized solution. Although, many consider a virtualized architecture to be pariah among SaaS, it is still a good option in many scenarios.
Multi-tenancy is a much abused term, so let’s provide an overview before we go forward. Applied, specifically to SaaS, multi-tenancy is an architecture that enables a single instance of an application to be securely shared among multiple organizations, also called tenants. The users of the application are employees or partners of the tenant/organization purchasing SaaS. Data of each tenant is private or can be shared depending on the nature of the application. A well designed multi-tenant architecture and operations automation are among the most critical elements in reducing operating costs for SaaS providers. The emphasis on well designed multi-tenancy is important. We do not wish to re-visit the green crystals debate, but a good multi-tenant architecture will facilitate automation in a host of areas, while poorly designed multi-tenancy can cause significant operational problems. Despite its benefits, and what many SaaS providers will tell you, multi-tenancy is usually never considered a driver for clients purchasing SaaS; its benefit should be viewed solely in helping the service provider reduce operations costs of a SaaS application – a very important driver for SaaS companies.
In our experience, we have found it helpful to divide multi-tenancy into two types. The first type of multi-tenancy addresses only sharing of tenants on a single instance of the application, and does not provide for any meaningful customization of the application for each tenant. We call this Compaction Driven Multi-Tenancy (CDM), and the goal of the architecture is simply to maximize sharing among tenants in order to reduce application delivery costs. The other type of multi-tenant architecture focuses not only sharing of the application instance among tenants, but also enables customization of the application at the tenant level. A great example of this type of multi-tenancy is Salesforce.com. We call this Compaction and Customization Driven Multi-Tenancy (CCDM). Just to clarify, by customization we mean features like changing the object model/database schema, workflows, user interfaces, business logic, and integration with external systems etc. for each tenant of the application. Also, these customizations are assumed to be done dynamically while the system is online.
Multi-tenant architectures that support customization (CCDM) are more complex and costly to develop than CDM architectures. The complexity in CCDM arises from the need to provide indirection points to support tenant specific code without changing the original code base, and the need to implement any tenant level persistence schema extensions from the original persistence schema. These customizations can be accomplished in many ways, a meta-data driven architecture being a choice we prefer. It is also important to understand that irrespective of multi-tenancy, all types of SaaS architectures have to address problems in the areas of Provisioning, Security, Scalability, Failover, Patch Management, Integration, Version Control etc. Solutions to these problems depend on a host of factors like SLA’s, application price, and other business practices, and become more complex to resolve due to the introduction of multi-tenancy. Thus, it is important for companies to carefully view business considerations before embarking on the development of multi-tenancy.
Transitioning from a CDM to CCDM architecture is a considerable amount of work. We have seen successful evolution in the past, for example with Salesforce.com. Over the years they have increased the application customization capabilities with considerable success, and now offer many these features as a part their Force.com platform offering.
Although we have not addressed multi-instance virtualized architectures in detail, they do represent an option for SaaS providers in many cases. Virtualized architectures are easier to develop, and multi-tenancy may not be an economically viable approach in many business cases. In part II of this post we address these issues, and provide a simple model that will help companies decide whether to invest in developing multi-tenancy or just choose a virtualized architecture for their SaaS applications.1 Comment
The increased interest in private clouds and the ongoing debate has puzzled us. Predictably, there is a lot of noise from a wide spectrum: the public cloud fanatics who believe private clouds will be doomed any day now, to those who have an incessant fear of security and privacy at public clouds, and to those who think hybrids are the way to go. So as public cloud enthusiasts, have we misjudged the value of private clouds, and the reasons for an increased interest in them? Well, the answer may surprise you.
First let’s get a few issues out of the way: the arguments about the value of private versus public cloud are about large enterprises. The debate is resolved in favor of public clouds for SMB’s who simply cannot match the cost, reliability, and security of public clouds.
Security and privacy are primary concerns expressed by enterprises about the public cloud, an issue Gartner’s Tom Bitman confirms in his polls. These concerns revolve not just around infrastructure security, but are those of personnel and processes also. Other concerns like maturity and performance of the technology, compliance, and integration round up the top five. The Microsoft report on the cloud provides more details, but we urge people to read it with caution. Unfortunately, many of the debates, reports, and blogs fail to either purposefully or unintentionally discuss a key issue which has had a significant impact on public cloud adoption, and the rise of alternatives like private clouds.
The public cloud induces a fear of an enormous change in the status quo of enterprise IT, and is critical to understanding the current interest in private clouds. To emphasize this point further, the biggest change in the enterprise due to adoption of public clouds affects the groups and employees leading the adoption themselves (the IT and Data Center groups) – a situation rife with conflicts of interest between the enterprise and its technology workforce. Needless to say, in any outsourcing scenario these concerns exist, but they are especially significant considering the nature of public clouds. This is because the economies of scale are so much in favor of public clouds, that once outsourced to them, data center functions will most likely never return back to the enterprise. That is not to say that private clouds will be completely eliminated. Enterprises will always have some information and systems that need to be internal, but they will represent small workloads. Other domains like banking may never get comfortable with public clouds.
For the above reasons, the increased interest in private clouds will continue despite offering comparatively much lesser value. But in our view this will be temporary; public clouds simply represent too strong a value proposition, and will become the dominant computing resource for enterprises over time.
Disruptive technologies have a long adoption curve, and many alternatives always arise – private clouds being one of those. It will be a long haul for public cloud adoption in the enterprise, but we are confident that eventually the chasm will be crossed…..2 Comments
We finally had the chance to view the VMforce (Force.com + SpringSource) announcement by Salesforce and VMware. There is no doubt that this is a smart move by Salesforce. It is also a tacit admission that their proprietary Force.com platform was not attractive to enterprise developers and ISV’s – thus the repackaging of Force.com by introducing SpringSource and Java.
The differentiation of the VMforce platform compared to other PaaS (Platform as a Service) will come from the Force.com services. The Database service, Analytics, Chatter,Reporting, Identity Management, Mobile, is an impressive list of services that will accelerate application development. On top the infrastructure management is being done by Salesforce. But all that said, unlike Phil Wainewright, we do not believe that VMforce changes the PaaS(Platform as a Service) landscape.
Salesforce is now in a better position to provide the illusion of openness. The emphasis here is on illusion. It seems the earlier attempt to make Apex look like Java did not do the trick. Spring and Java are open technologies, but Force.com is not. One area of concern we have is use of the Force.com database. It will impose constraints on the application’s storage model. It is also not clear how easy it will be to migrate from the Force.com database. VMforce still gives a lot of control to Salesforce, and ISV’s and enterprises would be wise to carefully understand the potential risks and conflicts of interest. Bruce Cleveland from InterWest Partners has an interesting post on this topic.
We have not forgotten VMware. They will also benefit from this experiment. A successful VMforce should open lots of opportunities for VMware in the enterprise and private clouds. All in all this is a good move by both companies. For users, the devil still lies in the details. Clearly, the two big issues will be pricing, and the restrictions imposed by the platform. We will wait and see………Add a Comment
Victor Hugo famously quoted, “No one can stop an idea whose time has come”; we believe that is so with the Cloud. In many ways, the technology business is quite similar to the fashion industry – new words, new acronyms, and new technologies come and go quite rapidly. But, the Cloud is something different.
The Cloud is not just a technology fad, but a set of ideas envisioned by the early pioneers of the Internet which are now coming alive. It already has, and will further transform how companies and individuals access and use technology. It is in this spirit that we plan to converse, listen and argue. So let’s start right away, keeping in mind the words of Master Yoda , “Always in motion is the future”.Add a Comment