March 26, 2012 | Written by: Raul Chong
Share this post:
Cloud computing is opening markets not previously contemplated by businesses in the past. Some software companies are now thinking of delivering their software as a service instead of the usual method of developing the software and selling it to their clients using typical distribution methods. To become a software as a service (SaaS) vendor, companies need to find the right balance where resources are shared among the various tenants to reduce costs, while at the same time to ensure that customer information is kept isolated from other customers. There couldn’t be a more serious problem than being able to see private information of one tenant from the account of another tenant! In addition to isolation of tenant information, SaaS vendors need to provide some level of customization for their customers.
In a multi-tenant environment, a SaaS company can reduce costs if it shares or reuses more of its resources. However, the more the company shares resources, the more risks it faces because an outage of a shared resource can potentially affect many customers. The more resources shared also adds to the complexity of the solution.
In this blog entry, I concentrate on the data layer, and specifically, I provide the considerations required if you are using DB2 as your database server of choice. With DB2, at least six cases are available of how you can architect your database server on the cloud for multi-tenancy:
- Sharing tables
- Sharing a database
- Sharing a database and using a different schema name
- Sharing an instance
- Sharing a database server
- Sharing a database server with multiple DB2 copies
These cases are listed in a certain order: from the cases where most resources are shared, to the cases where the least resources are shared. For more details about each case, and to learn the pros and cons, read this article.
As a SaaS vendor, you will likely have to choose the methods where you share resources. If you take the necessary precautions, such as using DB2 HADR feature, and other high availability and redundancy controls; you can reduce or prevent problems in a multi-tenant environment. Some of these data resiliency controls are built into the cloud.