Architecture for SaaS based online portal

2019-01-23 21:09发布

问题:

We are planning to prepare a product "online clothing store" based on SaaS model.

Different cloth vendors shall register to our portal. They will get web interface to manage own catalog of clothes.

When end user register with the system, they can see different catalogs of different vendor. Of course they can do standard search, filter, sort etc on available products. After selection, they will order the items. Respective vendor shall get order of those items, which is selected from his catalog.

At our end, we shall require administration panel and also customer CRM. It will keep records and data for all customers. We shall need to generate analytic about the customers. We shall record how customers are responding to different products of different vendors and according to study the behavior.

It requires to be very scalable product. Tomorrow even if million of vendor wants to join, it should support it.

I need advice about the architecture and overall design:

  • What architecture should be used?
  • Any reference system is available for consideration?
  • Any specific design pattern, we can consider while implementing it?
  • Any recommendation for database design?
  • How to make sure that portal will be scalable?

回答1:

There are a few things involved to build a SAAS software.

What architecture should be used?

A SOA/Microservices architecture is highly recommended. Loosely coupled, clustered and load balanced.

Any reference system is available for consideration?

A google search could probably give examples.

Any specific design pattern, we can consider while implementing it?

There is no single design pattern. Sticking to SOA and highly decoupled subsystems will help. Consider microservices and evaluate its pros and cons for your requirement. Take a look at Explanation of Tenant Load Balancer in SaaS maturity model level 4

Web application, SAAS?

Any recommendation for database design?

There are some DB models that help SAAS softwares. Take a look at Databse architecture (single db vs client specific db) for Building Enterprise Web (RIA) application on cloud

How to make sure that portal will be scalable?

Ideally, a cloud deployment where new instances can be added on demand. Even if not on a cloud, a similar setup with routing/load balancing enabled where new instances can be added is required, similar to a private cloud.