SaaS(Software-as-a-Service),字面意思:软 件 即 服 务, 即通过网络提供软件服务。
SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务
SaaS更是一种经营模式而非开发模式,不要搞混了,微服务才是开发架构的一种模式。
租户:SaaS中面向的用户,一般为企业用户。比如我们这里用商城做示例,那么租户就是商家。
服务的传统模式:(软件定制我提供,硬件你自己解决)
你要做个在线商城,来找我这个软件开发商;
你要整理你的需求,让我明白你要做京东还是淘宝那样的;
如果有良心的话,看了你的需求我可能会做个原型图出来给你看看;
但是像我这样没良心的,大概率会直接给你个报价单;
并且告诉你要买什么配置的服务器、数据库、域名等基础设施;
然后3个月过去了,商城做好了,简单一测试必然通过,BUG什么的,你怎么会这么快就发现,我自己都没发现。
我帮你部署到服务器上,试运营一段时间,收了尾款,see you !
半年过期了,你来打电话找我,兄弟,网站访问不了了,帮我看下;
讲良心的,或者合同里规定的还没出保修期的,大概率会免费帮你看看;
但你看我这样的,估计问你要个千儿八百的可能都算少的。
这就是初期软件服务的整个过程。
SaaS服务的第一阶段(软硬件我都包了,仍然是定制):
售后维护是个硬伤,总不能远程解决不了的问题都坐飞机过去一趟吧,于是开发商就想,要不你们把服务放到我的服务器上吧,安全有保障,维护起来也方便。
定制开发,是最初级的 SaaS 应用成熟度。
每个租户对应一个单独开发的软件 实例,与传统模式几乎没有差别。简单的说就是,每增加一个租户,就在一台服务器上部署一套代码和数据库。
最大不同就在于商业模式,即软硬件以及相应维护均由 SaaS 供应商负责。放心不会亏本的,羊毛出在羊身上,哪有自己掏钱的傻瓜商人。
SaaS服务的第二阶段(摆脱定制)
软件开发商都是讲究效率和收益的,过了两年后,开发商觉得这样简直太落伍太原始了,哪怕我把核心做成高度复用的,一人一个需求也够麻烦的,每个客户的代码不一致,数据结构不一致,版本不一致,那维护起来也是一头疙瘩。
开发商就想啊想,怎么才能少出力多挣钱,终于在想破头的前一天想通了:
我做过这么多不同需求的商城,可以说所有需求都做过了,干嘛不做一个包含所有需求的商城呢,给他提供一个基础版本。
到时候他要用哪个功能我就在配置里给他打开,然后收费,嘿嘿嘿。
只要钱到位91porn都可以在线播放。
第二阶段的特点是:
可配置,是在第一级的基础上改进的。
每个租户仍然对应一个单独的软件实例,但是供应商只提供了一套代码,通过不同的配置来灵活地满足各个租户
SaaS服务的第三阶段(多租户)
后来开发商觉得这样,虽然只有一套代码,但是每个客户都部署一个实例还是麻烦,不光是维护,后期的版本更新也是麻烦事。
要是能只维护一台服务器,一套代码,却能服务所有客户多好,想想都要忍不住、啊~
于是,琢磨了几天后,开发商就自己买了一台大容量服务器,稍微改了改代码(支持注册、注册后即可享用SaaS第二阶段的服务),部署上去了。
以后谁要想做线上商城,来我这注册就行了,一年只需888,开箱即用,按年收费,童叟无欺。
忘了说一年888是基础版的,嘿嘿,要开通会员积分、分销、广告的统统滴交钱。
其实这就是租用软件服务,一人一个账号,一个人就是一个租户,大家都用我这一台服务器,一个数据库。
因为成本低嘛,所以大家就先共用同一张表,放心,我会给你们加上租户ID,来区分你们之间的数据,不要慌。
这样子,开发商就可以大量的扩展市场了,虽然按年收费便宜了点,但是硬件成本和人力成本更低,只要用户量上来,产生粘性,那简直来源源不断的Money啊,啧啧~
第三阶段的特点:高性能的多租户架构,提出了多租户的概念,多个租户共享同一个运行实例。这种多租户单实例的架构更接近于真正意义上的 SaaS 应用架构。降低了硬件及维护成本,发挥了 SaaS 应用的规模效应。
SaaS服务的第四阶段(无限扩容)
又是几年过去了 ,这个开发商虽然心黑,但你别说,这两年挣得那是盆满钵满,客户量蹭蹭的往上涨啊。
但是福祸双至啊,服务器压力已经到上限了,这两天正有客户打电话说商城有问题不能访问了,要求退款赔偿,急的开发商那是一个满头大汗,抓耳挠腮。
这个时候,咔嚓一声,明明万里无云,却晴空霹雷,开发商一个哆嗦,忽然福灵心至,茅塞顿开,脑中一片清明,悟了。既然这样,不如那样,嗯,甚好。
于是架构升级了,以前那都是啥破玩意,docker容器化搞起来,K8S安排,API网关接口、MyCAT数据分库分表、用户鉴权、服务治理、中间调度层、SSO、服务器弹性伸缩搞起来,日志监控必须有……
反正一顿操作猛如虎,一看效果250,还不错,多租户SaaS支持无限扩容,听起来就能Hold住人。
第四阶段的特点:可伸缩性的多租户架构,添加了中间调度层将多个租户分配到多个运行实例上,通过多个运行实例来分担大规模租户访问。这一级成熟度硬件和租户数量可以无限制地增加,因此是最为理想的 SaaS 架构
这就是我理解的SaaS了,之前一直不是很理解SaaS到底是什么,所以特意整理了一下,原来我们公司现在做的就是SaaS的第三阶段。
下面放一片不错的文章,里面除了有SaaS的介绍,还有多租户下数据的存储和扩展的说明
数据扩展中关于XML的那部分,可以用文档类型的数据库代替,比如mongo。