While I was surfing through various architectures suggested, recommned and widely accpeted by many leaders and experts in SaaS/Cloud and came across the below architecture diagram from Microsoft.
It looked very interesting diagram to me as it very closely matches the stack of cello (Reference Architecture). You can notice that many of these blocks added here are related to either commercial consideration such as
- Taking Orders (Refer the dark rectangular container)
- Meeting contractual commitments
- Billing for usage
Providing after-sales service such as
- Provisioning Tenant
- Monitoring SLAs
- Customer Support
But not in the pure approach towards delivering a shrink-wrapped product.
The reason for this is servicing a SaaS product is a more involved task and hence having a strong delivery platform is key to the profitability. With many years of experience in developing and delivering SaaS applications for various verticals, we have realized that to run a successful SaaS business it is not just enough to build a product that works, but a product that is easily servicable by the customer service teams as well as easily managed and monetized by the business management team. Unfortunately, though SaaS has been around for a long period and has become the default way products are implemented many ISVs underestimate the need for this delivery platform. Hence the SaaS Product should aim at three vital things, they are
- Have a strong Base Application Architecture which can fulfill all the non-functional requirements required by a SaaS product such as Scalability, Security, Configurability, Availability and Easy Integration with other applications.
- Features that can enable the customer service team to service the customers easily and swiftly without depending too much on the development team.
Usual tasks for a customer service team would be to manage tenant related details, configure reports for customers, monitor SLAs and implement customized business workflows for the tenants. SaaS platform should encompass functionalities to fulfill these tasks without difficulty.
- Features that can enable the business team to strategize the monetization aspects to sell and monetize the product better such as the ability to provide trial, generate invoices, view tenant related analytics, upgrade/downgrade and collect payments. SaaS platform should include the functions to fulfill these tasks without difficulty.
When you think of all the above mentioned dimensions and draw a blue print of your SaaS architecture you would end up with the same stack as the above diagram show which is what cello has done in a precise manner. Cello combines these 3 very important dimensions and provides these features out of the box as a shrink wrapped solution allowing SaaS Developers to concentrate on the business functionalities which is where there expertise relies on.
SaaS applications can easily integrate with Cello for these features and avoid reinventing the wheel. Following shows the stack diagram of Cello.
For a detailed description about these blocks refer here.