SaaS架构设计笔记

叶伟著的《互联网时代的软件革命SaaS架构设计》,文中提到了2007年初Alisoft,吹嘘唯一使命是发展中国的SaaS软件,口号喊的太大,导致2010年阿里软件互联平台终止服务,服务是针对行业的,行业对SaaS的认可度总要一个过程,风口也是一时,谁能预料呢,或许alisoft做的有些超前,等不到SaaS盛行就倒闭了。而技术架构却值得借鉴。
1 成熟度模型
ASP要么像金蝶KIS或者管家婆之类单机版程序,一开始的时候需要地推人员一个个支持,还需要配备N多IT人员,维护不同版本,到了产品生命周期不想维护,便宜卖出去,用户爱用不用,反正不改了。
SaaS想对ASP,对服务器资源要求就高,因为要面向大量的租户,需要投入一定量的高可用的服务器资源,另一方面还需要通过技术手段将运维成本、开发成本降下去,这个是有挑战的。需要设计一个成熟度模型,确定是否满足SaaS应用的高性能、可配置性、伸缩性的目标。

可配置 高性能 可伸缩 说明
level1 x x x 为每个客户定制一套软件,并按需付费,跟传统项目型软件应用架构几乎没有差别,最大差异在商业模式上,在技术上依赖人肉战术
level2 y x x 增加了可配置性满足不同用户的需求,降低了定制开发的成本,软件的部署架构没有发生太大的变化,B2C网上商城、论坛等都提供此类服务,与传统软件没有太大差别,大多采用Metadata(元数据)来实现
level3 y y x 多租户单实例的应用架构(Multi-Tenant),有效降低SaaS应用的硬件和运行维护成本,最大化发挥SaaS的规模效应
level4 y y y 租户增加,集中式的数据库性能成为SaaS应用的性能瓶颈,通过一定策略满足SaaS应用的水平扩展,核心在其数据的水平拆分

作为一个技术人员看到上面的,最兴奋的莫过于设计一款Leve4的产品,但这个世界上并不是最好的,却应该有最合适的。
1 如果公司要求短时间内完成,市场预估短期内用户推广也不会推广到太大程度,那么为什么一定要用level4呢?
2 如果你按照level4设计,而系统没有经过验证你的设计是合理的呢?
3 如果你的用户是卖方市场,你的设计再强也让你停留在level2级别,你的积极性受到打击,你还会坚持吗?
4 出于私心,level1、level2需要投入大量的人力,你是否也有机会上位?
5 即使你从大佬哪里学到了level4的设计并实践,但你并不是大佬,离开当前公司,市场上又有几家柠檬云、纷享销客的舞台给你实战?
6 Salesforce将SaaS应用的可配置性作为第一产品卖点,但是你面向的中小微企业,这个强大的可配置性真的有必要吗,他们不会为其买单,而开发人员却投入到人工配置的工作量中。
7 借鉴别人的最佳实践,Ali的经验是用户量10000以下,可伸缩性不是首要考虑,而当租户在50000甚至更高,可伸缩性架构就是重点。《互联网时代的软件革命SaaS架构设计》中称很多的大型互联网网站,也都还是采用集中式数据库。
2 Multi-Tenant
数据存储中的三种方案

  • 独立数据库
    这种方案与传统的一个客户、一套数据、一套部署类似,差别在于软件统一部署在运营商。面对银行、医院等对数据隔离要求高的租户采取的模式。
    1

  • 共享数据库,隔离数据结构
    多个或所有租户共享database,但一个或多个tenant一个schema。缺点是跨租户统计数据存在一定困难,如果出现故障,数据恢复也比较困难。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值