SaaS编年史之技术视角观察

王福强

2019-12-20



1 CRUD程序员与web管理后台

说道SaaS,我觉得不得不提及一下传统软件开发里最简单的一个结构概念。

BS架构下到软件,最简单的结构一般是这样式儿的:

围绕一个数据库分成前台应用和管理后台, 而这里的管理后台其实就是后来声称是SaaS的大多数应用平台的雏形。

在这个阶段的管理后台应用里,大部分的功能逻辑就是CRUD操作(Create, Read, Update, Delete),即常说的增删改查, 而对应开发这些系统的人员,则大多沉淀的都是技术专业能力不高的团队成员(这话可能说的有点儿伤人了,但本质上就是酱紫)

2 从项目制到后台公网化

将web管理后台的生意发展成SaaS模式, 第一个阶段是做项目, 做各种各样公司内部用的管理系统和管理后台,到这个阶段来说还都挺好的, 起码这些应用都是部署在内网, 对于性能之类的要求都不高,而且内网带宽和时延也都不是啥大问题, 你就算从原来的完全服务器端渲染整个视图(SSR HTML),发展为今天单页应用(SPA)要加载很大的js等静态资源, 在内网环境下其实都问题不大(当然,如果内网拓扑和基础实施搞得实在太烂,那也会死慢死慢的)。

但是要称为SaaS,首先的一个转变就是我是要通过公网为客户提供服务的,即使之前是做企业内部用的管理后台,但一旦声称是SaaS,这个管理后台也得让人能够通过公网访问呀,而不管你是一家公司部署一套,还是多家公司公用部署一套。

一旦公网化, 本质上就有些变化了,你得处理在公网环境下才会遇到的各种问题, 首先就是网络环境的差异, 带宽和时延都跟内网环境不是一个数量级了,所以要做资源的优化,要做网络优化,当然,还要做好安全防控,因为战线已经暴露在黑白帽甚至竞争对手的跟前。

实际上,这个时候完全可以说是后台前台化了,因为它要处理之前前台应用才会考虑的n多问题。

除此之外, 生意的发展阶段和系统与产品的发展在这个阶段也可以划分一下:

2.1 项目制

任何软件和生意都是有发展阶段的, 很多所谓的SaaS生意,大都是从做项目开始的,这家企业用户接个项目,那家企业用户接个项目,先通过做项目赚钱养活团队, 需求差异性很大, 所以, 就算对外声称是SaaS, 底下可能还是一个个独立部署的系统。

2.2 模块化

随着项目越做越多,如果还是沿用过去项目制的经验, 那么一定会朝着规模不经济的路走下去,要扩张,要做更多项目,就得招更多的人,虽然这种模式也可以发展(做保险销售的按照这种模式可以发展到80万人到120万人不等), 但很难有人效上质的变化,所以, 有点儿追求的团队,就得考虑如何通过产品和技术架构来提升SaaS的交付效率,减少后期维护成本, 模块化显然是最合理的方式。

但是, 模块化说起来容易,做起来就难咯, 当年OSGi叫的很火,理念也很好,但最终为什么落得个一地鸡毛? 因为忽视了承接落地的人群的感受。理念很好,落地却是渣的一塌糊涂,没啥鸟用,因为工程上从来是越简单越好

所以, SaaS要模块化做好,一定得先有能规划产品和技术架构的人,其次是结合产品和团队现状如何落地,最后才有可能收获好的效果。

如果组织和人才储备上没有相应的规划和承接能力,还不如老老实实做项目制更务实。

3 前后多端通吃到泛化SaaS概念

时至今日, SaaS的概念其实已经泛化为任何通过软件系统和平台创造营收的模式都是SaaS模式(anything that can make earnings from software),比如淘宝,拼多多,早年可能都提平台,但其实他们本身就是通过软件来创造营收,很早起的软件研发投入在中长期通过运营和商业模式来创造服务价值,真正践行了Software As A Service的理念。