zoukankan      html  css  js  c++  java
  • SaaS到底是什么

           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。
     
     
     
     
     
  • 相关阅读:
    【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?
    【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
    【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
    【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
    【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(Xms512m Xmx1204m)?
    【Azure API 管理】APIM添加Logtoeventhub的策略后,一些相关APIM与Event Hub的问题
    【Azure API 管理】为调用APIM的请求启用Trace 调试APIM Policy的利器
    【Azure 事件中心】China Azure上是否有Kafka服务简答
    【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
    【Azure 微服务】记一次错误的更新Service Fabric 证书而引发的集群崩溃而只能重建
  • 原文地址:https://www.cnblogs.com/lz0925/p/12883792.html
Copyright © 2011-2022 走看看