什么是SAAS
SAAS Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。
SaaS 代表软件即服务:一种软件许可模式,其中软件集中托管并通过订阅进行访问。
以上描述比较笼统模糊,用一幅图来说明。
上图第一列是传统的系统,第二列是Iaas, 第三列是Paas, 第四列就是我们说的SaaS。
关于云架构太大,本篇不做深入讨论。仅说明一点,从上图可以看出SaaS的定位,关注于应用服务和业务数据的处理。
技术栈
什么是技术栈
技术堆栈是用于开发 Web 或移动应用程序的编程语言、开发工具、库、框架和软件的组合。 它是开发过程的基本要素,也是创建应用程序的第一步。
技术堆栈分为两个不同的方面,即前端和后端。
为什么技术栈很重要
技术堆栈将决定应用程序的可扩展性、功能性和可行性。 因此,根据公司需求做出关于最佳技术堆栈的决策。
SaaS 技术栈选择原则
- 公司或者团队当前技术能力和熟悉的技术生态。
- 选择的开发语言和开源社区尽量有一定规模和广泛使用程度。
- 学习曲线要低。
Python 比其他编程语言更容易学习,从语法简单、用途广泛、阅读 Python 代码非常直观。
Java技术应用系统比较成熟,历史上开源社区广泛采用java。
如果没有历史负担,个人推荐使用python。python除了学习成本低,在AI和基础研究领域被广泛采用,将来相当长的时间内会越来越重要并成为主流语言。
- 市场上能够相对容易的找到技术栈的人才。如果选了一个小众的技术栈,无论技术多牛,但人员离职更替是必须考虑的因素,职位挂出去两个月,能找来面试的都没几个。尽量不要去选。
- 技术栈的长期价值。要对采用技术栈的生命周期有个判断。尽量选取大厂,大基金的热度较高的,近几年开源且有一定成熟度的技术栈。避免选用过气的开源框架,无论曾经多么辉煌。
- 此外,SaaS 技术堆栈要能够适用敏捷化、简化开发、简化维护等能够节约成本的要求。
SaaS 技术栈能力等级
定制开发 --> 可配置 --> 多租户 --> 高性能 --> 可伸缩
- LEVEL1 定制开发
软硬件都由SAAS服务商提供,软件的使用者只需要按时间、用户数、空间等逐步支付租赁使用费用即可。 - LEVEL2 可配置
通过不同的配置满足不同用户的需求,而不需要为每个用户进行特定定制,以降低定制开发的成本。 - LEVEL3 高性能的多租户架构
多租户:通过一定的策略来保证不同租户间的数据隔离,确保不同租户即能共享同一个应用的运行实例,又能为用户提供独立的应用体验和数据空间。实现方案有独立数据库、共享数据库独立数据架构、共享数据库共享数据架构。
高性能:满足多租户并发访问的性能挑战。 - LEVEL4 可伸缩性的多租户架构
解决租户数量增加因集中式数据库带来的性能瓶颈。
SAAS实现阶段性成熟度推进