SaaS产品的开发并不是简单的将单机版云化,相对于非SaaS化的产品研发来说难度要大很多,特别是toB的SaaS应用软件,主要体现如下:

1)SaaS化产品首先要解决底层的系统架构符合云计算的要求,传统的分库分表多用户只是SaaS的一些基本要求,采用传统的系统架构如果不支持分布式,也不能叫做SaaS。微服务架构当然有其优势,但对于B端应用来说,微服务架构其实是不适合,这里的主要问题是微服务对事务性应用并不友好,另外由于业务系统一般都比较复杂,也使得服务粒度的平衡很难把握,同时会大大的增加调用复杂性。

2)另外在业务上,我在前面的文章中提到,需要做到很多方面的平衡:“

1)通用化和定制化之间的平衡;

2)具体化和模板化之间的平衡;

3)易用性和业务性之间的平衡;

4)标准化和个性化之间的平衡;

5)结构化和非结构化之间的平衡;

6)固化流程和灵活流程之间的平衡;

7)易用性和可控性之间的平衡;

8)用户和权限的复杂度平衡;

9)单企业或多企业平台之间的可分析性平衡;

10)ToB管理软件中的管理和被管理之间的平衡;

。。。。。。

需要思考的问题其实很多,SaaS开发需要做的事情还是非常多。”

这个平衡的把握是非常难的,需要系统架构师既要懂技术,也要懂业务。业务架构和系统技术架构必须互相配合,否则搭建出来的SaaS底层架构将非常难用,可扩展性,易用性将非常差。

怎么解决上述平衡问题,是进阶成为SaaS系统架构师的所必须解决的问题。这里面还叠加着时代的进步,互联网+传统软件之间的平衡和融合。

当然传统软件的业务架构和灵活的编程模式还是具有借鉴意义,只是我们需要聪更高的维度或者层次考虑这些问题。本人从2008年切入云计算企业应用的开发,经历过太多的教训,当然也收获了非常多的经验。希望有机会大家可以多多交流。

Logo

开源、云原生的融合云平台

更多推荐