专栏首页微观技术为什么企业更青睐SaaS架构

为什么企业更青睐SaaS架构

随着智能机的普及,互联网C端的流量红利越来越少,靠大打补贴战快速积攒用户的玩法越来越少了,毕竟资本也不是傻子。在这么一个浮躁的环境里,硬逼着一些老板耐下心来,默默耕耘业务,确实挺难为他们的。

另有一部分创业者,开始瞄准了to B市场,毕竟把老板们“伺候”舒服了,花个万把块钱买个服务也不是什么难事。SaaS 软件布局模型,其应用专为网络交付而设计,便于用户通过互联网托管、部署及接入。具有统一运维、管控、升级等特性,很受青睐。

画外音:SaaS正在蓬勃发展,前途一片光明

SaaS系统简称云系统,是云计算后台的整体运营系统,指把服务器、数据库、放在云端的综合性系统,客户只需要通过互联网在云端就可以实现互通,用户只要在PC端安装个登陆程序或通过APP/输入网址/扫描微信二维码等等手段访问云端,就可以随时随地实现功能应用与管理。

SaaS是一种软件交付模式,将软件以服务的形式交付给用户,用户不再购买软件,而是租用基于Web的软件,并按照使用情况付费。

画外音:我们卖艺不卖身。对于客户来讲,省钱才是硬道理。

特性:

  • 依靠互联网,用户只需要浏览器或者定制化的终端设备即可访问
  • 软件统一管理,易于升级和维护
  • 灵活多变的收费模式
  • 规模效应,可以服务于大量用户
  • 多租户特性

多租户SaaS架构需要具备相同的硬件、网络和操作系统配置能力,所以很难实现根据单一用户的需求去做功能上的定制化,也很难根据某个用户的请求进行常规的系统升级、重启之类的操作。所以会有单租户模式,关于多租户与单租户的详细描述,可参考 一篇文章读懂SaaS多租户和单租户的分别

画外音:有钱人住单间,没钱睡大通铺。

成熟度模型

多租户模式可以同时为多个用户提供个性化服务,定制化应用的某些属性,会存在很大挑战。有什么好的解决思路。

  • SaaS应用提供配置方法和工具,以便客户根据个性化需求定制功能
  • 可配合性体现在数据、界面、功能、流程、安全等
  • 配置工具要有较强的灵活性,可以结合业务特色,自定义流程引擎
  • 可以参考现在流行的中台思想,做业务的共性抽离,通过界面化或者配置化的形式控制节点的流转

核心系统架构

提供一系列组件,如:账户、认证、权限、服务的注册与发现、安全、计费、加密,统一化的接入规范等等,来满足服务的支撑运行。可参考 SaaS参考架构和关键技术

数据库设计

一种简单的设计方案,每张表中都添加一个用于区分租户的字段(如租户id或租户代码)来标识每条数据属于哪个租户,其作用很像外键。当进行查询的时候每条语句都要添加该字段作为过滤条件。其特点是所有租户的数据全都存放在同一个表中。数据的隔离性是最低的,完全是通过字段来区分。

除此之外,在租户ID下面还定义了不同的用户ID,来保证每一个用户都能够按照正确的访问权限访问属于他们的数据。

本文分享自微信公众号 - 微观技术(weiguanjishu),作者:TomGE

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于消息队列,面试官一般都会问哪些?

    看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃......

    用户7676729
  • APNS开源包的内存泄露问题

    APNS(全称:Apple Push Notification Service),主要是用于往苹果设备推送push消息通知!

    用户7676729
  • 借助SPI 解决复杂业务扩展问题

    首先我们了解下何为SPI,SPI全称:Service Provider Interface,由一方提供接口规范,另一方负责具体实现。其理念跟软件设计模式中的策略...

    用户7676729
  • Java 性能优化:教你提高代码运行的效率

    我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最...

    好好学java
  • 44个Java性能优化细节,教你提高代码运行的效率!

    代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是...

    全栈自学社区
  • Java 代码优化之细节是魔鬼

    原文链接 https://www.cnblogs.com/xrq730/p/4865416.html

    趣学程序-shaofeer
  • Java代码优化总结(长期更新)

    2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:

    ZhangXianSheng
  • java代码优化的若干细节

    代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼...

    lyb-geek
  • 44个Java代码性能优化总结

    摘要 代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后...

    IT大咖说
  • 44个Java代码性能优化总结

    代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是...

    Java技术栈

扫码关注云+社区

领取腾讯云代金券