随着新冠疫情的爆发、疫情的逐渐好转,中小企业们的生意开始变得好做,老板们花钱再也不敢大手大脚,而是精打细算的经营,SAAS模式便是其最好的选择。企业只需要按照自己的需求进行购买服务、付费就好了,也不需要再去安装、运维服务,服务的升级、更新也不用管;传统情况下都是企业自己购买服务器、将代码部署在应用程序上并提供服务,需要支付服务器的成本、服务成本、实施成本、维护成本,这样的成本是很高的。因此SAAS越来越得到认可。那么一个SAAS产品的技术特点是什么?技术架构是怎么样?如何做技术实现呢?
SAAS产品最典型的特点便是多租户,所谓多租户就是一个平台、多个企业(1人或多人)。一个平台指的是企业提供的一个代码版本、一套服务器、一个数据库;多个企业指的是每个企业的数据是不一样的,每个企业都有一个唯一的租户ID,所有的数据访问和安全措施都按租户ID隔离。这也是我们在使用salesforce、appdynamics等SAAS产品的访问链接时有一个唯一的ID的原因。
清楚了一个SAAS产品的特点后,我们再来看看把一个产品进行SAAS化核心要考虑的点有哪些呢?总的来说有5点,第一是严格隔离不同租户的数据,第二是对用户需求所使用的计算存储能力按需分配,第三是满足不同用户的不同使用需求,用户可以按需搭配功能使用,第四是对产品进行统一升级并且不影响用户的已有功能与数据,第五是支持用户按需进行功能和数据的开发与扩展。
对于第二点,基于云平台的弹性伸缩便可以实现计算资源、网络资源、存储资源按用户需求自由扩展。对于第三点,在产品设计时,采用领域驱动设计的思想、微服务的架构实现将服务拆分成原子化,这样便可满足不同用户选择不同功能组合的诉求。对于第一点、第四点、第五点,则是在做底层数据模型设计时,要对数据进行抽象建模,然后再把不同的数据模型映射到物理模型、存储架构,这样在隔离用户数据、支持用户按需进行功能扩展和开发时都比较容易扩展。
清楚核心要素后,我们再来看看一个SAAS产品的设计。其实SAAS产品相对普通产品而言只是多了一个多租户的特点,因此在技术架构上也比普通产品多了一层,即租户识别层-》应用层-〉数据访问层-》缓存层-〉数据库层。在租户识别层,一般的做法都是通过URL来唯一识别租户,SAAS系统中给租户生成一个随机的三级域名,比如xxx.aikegongchang.com,用户还可以通过系统自定义自己的三级域名,比如xiaoming.aikegongchang.com。这样当用户输入URL进行访问时,系统便可判断这是哪个企业。在收费、功能定制开发时也按照对应的ID映射处理即可。
在SAAS产品的架构一般可抽象为四层:呈现层-》调度层-〉业务层-》数据层。呈现层即前端,使用html、css、ajax等技术将产品web化,呈现在浏览器或本地客户端中。调度层即负载均衡,根据不同的用户请求将其转发到不同的服务器。业务层即处理实际的业务,接收并执行来自调度层的请求,返回数据。数据层即存储业务的数据,业务扩展时还可以使用数据库主从复制、分库分表等进行高可用。整个SAAS产品的架构宏观看就是分布式的代码部署、分布式的数据存储,这样便可以满足不同规模用户的诉求了。
SAAS模式已经成为了软件市场上令人兴奋的发展模式。尤其是欧美国家,SAAS模式更是得到了高度认可,我们所熟知的销售产品Salesforce、电商平台Shopify、人力资源平台workday、IT服务ServiceNow、移动支付Square、在线开发协作平台Atlassian、视频会议zoom、企业沟通Slack,无一不是SAAS平台,也都做的非常成功。而中国,SAAS的春天刚刚开始,诸如电商平台有赞、移动支付兑吧、北森人力资源服务、财务支付畅捷通等等,也是收到了市场的认可。
2021年更是迎来了SAAS的新一波发展期,突如其来的新冠疫情在一些行业按下了暂停键,但是另一些行业却又按下了加速键,SAAS便是其中的一个。SAAS是一个很好的方向,中国企业的付费习惯也慢慢被养成,市场也在有推动,或许也会是一个不错的创业方向~
(责任编辑:代码如诗) |