什么是SaaS货代管理软件?
2151
2019-09-17 10:28    文章来源:WallTech 原创: P哥(WallTechCloud)
文章摘要:就像打开自来水龙头就能用水一样,企业根据实际需要,向SaaS提供商租赁软件服务。

SaaS 提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘 IT 人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,向 SaaS 提供商租赁软件服务。

SaaS 是一种软件布局模型,其应用专为网络交付而设计,便于用户通过互联网托管、部署及接入。SaaS 应用软件的价格通常为「全包」费用,囊括了通常的应用软件许可证费、软件维护费以及技术支持费,将其统一为每个用户的月度租用费。

1.png

与传统物流软件的区别

与传统物流操作软件相比,SaaS 服务依托于软件和互联网,不论从技术角度还是商务角度都拥有与传统软件不同的特性,表现在:

互联网

一方面,SaaS 服务通过互联网浏览器或 WebServices/Web2.0 程序连接的形式为用户提供服务,使得 SaaS 应用具备了典型互联网技术特点;另一方面,由于 SaaS 极大的缩短了用户与 SaaS 提供商之间的时空距离,从而使得 SaaS 服务的营销、交付与传统软件相比有着很大的不同。

多租户

SaaS 服务通常基于一套标准软件系统为成百上千的不同客户 (又称租户) 提供服务。这要求 SaaS 服务要能够支持不同租户之间数据和配置的隔离,从而保证每个租户数据的安全与隐私,以及用户对诸如界面、业务逻辑、数据结构等的个性化需求。由于 SaaS 同时支持多个租户,每个租户又有很多用户,这对支撑软件的基础设施平台的性能、稳定性、扩展性提出很大挑战。

服务特性

SaaS 使得软件以互联网为载体的服务形式被客户使用,所以服务合约的签定、服务使用的计量、在线服务质量的保证、服务费用的收取等等问题都必须考虑。而这些问题通常是传统软件没有考虑到的。

SaaS(Software asaService,软件即服务) 是通过互联网以服务形式交付和使用软件的业务模式。在 SaaS 模式下,软件使用者无需购置额外硬件设备、软件许可证及安装和维护软件系统,通过互联网浏览器在任何时间、任何地点都可以轻松使用软件并按照使用量定期支付使用费。

模型分级

根据 SaaS 应用是否具有可配置性,高性能,可伸缩性的特性,SaaS 成熟度模型被分成四级。每一级都比前一级增加三种特性中的一种。

定制开发

这种模型下,软件服务提供商为每个客户定制一套软件,并为其部署。每个客户使用一个独立的数据库实例和应用服务器实例。数据库中的数据结构和应用的代码可能都根据客户需求做过定制化修改。(多次开发)

可配置

通过不同的配置满足不同客户的需求,而不需要为每个客户进行特定定制,以降低定制开发的成本。

但是,软件的部署架构没有太大的变化,依然为每个客户独立部署一个运行实例。只是每个运行实例运行的是同一份代码,通过配置的不同来满足不同客户的个性化需求。

可配置性的比较通用的实现方式,就是通过 MetaData(元数据) 来实现。(一次开发多次部署)

多租架构

多租户单实例 (Multi-Tenant) 的应用架构才是通常真正意义上的 SaaS 应用架构,它可以有效降低 SaaS 应用的硬件及运行维护成本,最大化地发挥 SaaS 应用的规模效应。(一次开发一次部署)

可伸缩架构

将第三级的 Multi-Tenant SingleInstance 系统扩展为 Multi-Tenant MultiInstance。最终用户首先通过接入 Tenant Load Balance 层,再被分配到不同的 Instance 上。通过多个 Instance 来分担大量用户的访问,我们可以让应用实现近似无限的水平扩展。

要实现第四级成熟度模型,最复杂的就是针对原有单个 Instance 的数据库服务器,实现其数据的水平拆分。

2.png

SaaS 的成熟度模型

根据是否具有可配置性、高性能、可伸缩可将 SaaS 成熟度分为四级,每一级都比前一级增加三种特性中的一种。

Level1:定制开发

为用户提供专用的数据库实例及应用服务器实例,依据用户实际需求进行定制化开发,其实最初的 SaaS 应用成熟度模型,在技术架构上和传统项目型软件开发或软件外包没什么区别。有一个客户项目,就按照客户的需求来定制一个版本,每个客户都有一份独立的代码,各版本间可通用的只有少量可重用软件,库及开发人员经验。

虽然最初级的 SaaS 模型,在应用架构上和传统软件模式并没有什么区别,但,在商业模式上,最初级的 SaaS 模型和传统软件模式,还是存在本质上的区别——即软硬件及相应的维护职责都由 SaaS 服务商提供,用户按需缴纳费用即可使用。

Level2:可配置

还是为用户部署单独的运行实例,但有效的减低了第二次开发的成本,通过可配置的形式,满足用户的基本需求。

最初级的成熟度模型,显然并不是良好的 SaaS 成熟度模型,每次新增用户都需要进行定制化的开发,单独部署。这种模式势必会导致随着客户数的增加,需要投入的定制化开发成本,软硬件已经运营成本,都将随着客户的增加而按照比较增加。

但这种模式达到一定规模后,想要进一步扩大规模,基本上就只能依赖于人肉战术了。

所以,首先需要解决的问题就是降低定制化开发成本。SaaS 第二级依赖的解决方案,就是通过可配置化实现有效降低开发,进而达到缩减成本的目的。希望通过可配置化来满足不同客户的需求,而不需要为客户进行特定的开发。

但是,其实通过描述可发现,在第二级模型中,软件的部署架构并没有发生多大的变化,依旧是为每个客户部署一个运行实例,只是每个运行实例都是运行着同一份代码,通过配置的不同来满足不同客户的需求。

Level3:高性能多租户架构

从应用架构的角度而言,第一级和第二级成熟度模型和传统软件并没有太大的区别,只是在商业模式上比较符合 SaaS 的定义。由于其应用架构的设计是为每一个新的租户都单独部署一份软件实例,在一对一的架构,势必会导致需要维护软硬件成本,随着新租户的增加而直线上升,无法有效的发挥 SaaS 模式的规模效应。

所以,多租户单实例的 SaaS 架构才是通常上真正意义的 SaaS 模式,多个租户对应一个软件实例可有效的降低软硬件成本,充分发挥 SaaS 模式的规模效应。

实现多租户模型的关键是通一定的策略来确保用户数据的独立性,用户共享统一的应用实例,势必会对数据独立性提出一定的要求,在用户需求差别不大,客户数量不多时,讲一个第一级/第二级成熟度模型改造成多租户并不会太复杂,通常可以通过独立数据库,共享数据库独立数据结构,共享数据结果实现。

Level4:可伸缩性多租户架构

该级别的初始目的为了实现在用户数大量增加的情况下,无须更改应用架构,只需要简单的增加硬件部署的数量,就可支撑应用规模的增长。

在架构设计中的 Tenant Load Balaner 层将会保存用户,租户与对应软件实例的映射,用户登录后,即刻映射到对应的软件实例。


版权声明:

凡本网内容请注明来源:T媒体(http://www.cniteyes.com)”的所有原创作品,版权均属于易信视界(北京)管理咨询有限公司所有,未经本网书面授权,不得转载、摘编或以其它方式使用上述作品。

本网书面授权使用作品的,应在授权范围内使用,并按双方协议注明作品来源。违反上述声明者,易信视界(北京)管理咨询有限公司将追究其相关法律责任。

评论