Nowadays, at the cloud-computing boom, new possibilities in virtualization of the whole IT systems (servers, computers) or just single applications, we also see boom in the area of applications working in a Software as a Service (SaaS) model.
Our series of posts will focus on the issues concerned with Multitenant platforms. We will show you some basis and ideas about development process, database design and application architecture which will fit in SaaS model.
Such platforms are characterized in that one web platform is used by many companies (named tenants). The most meaningful example could be the leader in this market – Salesforce. They major product is a CRM used by companies like Toyota, GE or even Facebook. Such big companies share one thing – the common Salesforce platform.
Platforms handling multiple customers in single code base are the next challenge for the IT Architects. They’re requiring usage of the new models when designing database, knowledge of automation deployment processes. They must be:
- Highly Scalable – the more customers we have, the more resources will be in the database. If we have ten customers we will have to handle 10x more resources in comparison with single-tenant approach. Our platform must be higly-scalable. What if suddenly our system will be used by some big company, which uses 200% more resources than the previous customers?
- Secure – Lack of security, no access control lists (ACL) mechanisms, will lead to leak of data across customers – one company will see data of some other. Our customers must be sure that their data are safe and the access is fully reliable.
- Customizable – for sure our customers will requests for some custom changes. Beginning with the changes in graphic template and ending with custom attributes in the database entities. We have to decide which changes will be possible and design application with regard to this.
- Ease of maintenance – when having 1,000 customers it won’t be possible to manually change schema of the database on every account. We have to automatize our deployment processes to handle it.
About the series
Next parts of the series will cover above topics. We’ll talk about:
- Development strategies
- Database models which will let you build high-scalable platform while maintaining high security level
- Code aspects to provide possibility of customizable, including using of event based architecture and template systems
See you soon! 🙂
Going cloud? Check Octivi!