多租户看这一篇就够了

本文深入探讨了XaaS(IaaS、PaaS和SaaS)的概念及其区别,详细解释了多租户的定义、用途、隔离方案,包括独立数据库、共享数据库和共享Schema等,以及它们的优缺点。通过实例,阐述了如何使用Mybatis-Plus实现多租户系统,包括分页和数据插入操作。
摘要由CSDN通过智能技术生成

什么是多租户?举个例子:马云、马化腾和刘强东三个人去租房子,他们因为家里经济困难所以勤工俭学,三个人决定合租一套三室一厅的房子,虽然每个人有自己的房间,但是家里的水电、厨房、卫生间和热水器都是大家一起公用的。隐私性肯定是没有单独自己租房子来的高。

写作目的

本文写作的目的是探索XaaS(IaaS、PaaS和SaaS)三种模式的概念及区别?多租户是什么?多租户可以用来干什么?有哪些租户隔离方案?这些方案的适用场景有哪些,它们各有什么优缺点?带着这些疑问,我们最后看下如何具体实现一个多租户系统。

XaaS(一切即服务)

在讲解多租户之前,我们先来了解一下云计算的三种主要模式:IaaS、PaaS和SaaS。

  • IaaS(Infrastructure as a Service),基础设施即服务。提供基于云的虚拟化计算和存储服务。
  • PaaS(Platform as a Service),平台即服务。除了提供基础设施以外,PaaS还提供了基于云的操作系统、数据库和开发工具。
  • SaaS(Software as a Service),软件即服务。在PaaS的基础之上,SaaS可以为任何能够联网的设备提供软件服务。

IaaS(基础架构即服务)

IaaS通过即用即付的方式为用户提供网络、存储和计算等基础设施资源。用户只需要购买和配置应用程序及系统所需的资源,然后自己负责部署、维护和开发应用程序。可以把IaaS简单理解为基于云的虚拟化硬件服务提供商,购买了IaaS的服务你就拥有了能随时随地联网的服务器。

PaaS(平台即服务)

当用户购买了“硬件资源”之后,当然是想要在自己的硬件设备上安装操作系统、中间件和开发工具。PaaS可以为用户提供安装操作系统、中间件和开发工具的一站式运维服务,用户需要考虑的只是编写代码和测试应用程序。用户开发完应用程序以后,PaaS会负责应用程序后续的生命周期如构建、部署、托管以及更新。

在控制成本方面,PaaS也是非常灵活的。用户可以根据应用的客户体量和使用效期来决定购买合适的资源。

SaaS(软件即服务)

SaaS近几年一直是产品的风口行业。但是早在上世纪90年代,软件就作为一种服务来销售,用户按月缴纳费用,当时将这种模式称作按需服务(on-demand),它是SaaS模式的雏形。

SaaS最早的实践者一般认为是Salesforce的CEO兼创始人马克·贝尼奥夫(Marc Benioff)。他认为“一定有一种方式,让购买软件更加方便和便宜”。用户只需要订阅和付费,不需要经历漫长的开发、安装和维护周期。并且在现在这个高度信息化的时代,多端访问和数据同步已经是很多用户的刚需,用户希望无论何时何地都可以通过浏览器或者手机访问自己的应用。

关于SaaS的演进过程,这里打个比方。30年前,家家户户炒菜洗澡的气都装在煤气罐里,煤气用完了就通知煤气工人来回收并换一罐煤气。这个煤气罐就可以理解为以前的私有化部署服务。这种模式需要定时维护更新。

20年前,家家户户住上了商品房,换煤气罐上下楼太不方便,人们使用天然气直接从天然气公司订购每月缴费,按需购买,天然气公司集中供气并管理各家天然气管道。这种模式不再是私有化服务,节约了用户的使用成本和天然气公司的管理成本。我们可以将这种模式称之为“供气即服务”。

10年前,移动互联网兴起,人们不再需要去天然气公司上门缴费。手机上动动手指头,然后带着天然气卡去物业圈存即可。这就使得“供气即服务”的信息化得到进一步加强。

SaaS模式可以简单理解为用户授权,将IT设备、软件和运维统统外包给SaaS服务提供商。用户以租户的形式使用SaaS厂商提供的服务。

SaaS厂商一般不会自己去做IaaS,但SaaS和PaaS之间的定义还存在争论。PaaS除了提供操作系统开发工具以外,还可以向SaaS提供公共工具,如组织架构、权限管理和计费等。对于初创期的中小企业不具备这样的技术能力。大多数SaaS厂商的侧重点应在于应用的业务实现,而不是平台的技术能力。

小结

IaaS

PaaS

SaaS

名称含义

基础架构即服务

(Infrastructure as a Service)

平台即服务

(Platform as a Service)

软件即服务

(Software as a Service)

平台提供

虚拟化的硬件计算、存储

虚拟化的硬件计算、存储

操作系统、管理和开发工具

虚拟化的硬件计算、存储

操作系统、管理和开发工具

云应用程序

用户实现

操作系统、管理和开发工具

云应用程序

云应用程序

/

用户群体

  • IT运营商
  • DevOps团队
  • 系统和数据库管理员
  • 全栈开发人员
  • 有开发能力但考虑运维成本的企业
  • 开发人员或程序员

没有开发能力的企业

优点

  • 可以灵活扩展资源
  • 节省成本
  • 技术门槛低
  • 快速开发。可配置的框架和工具
  • 管理简单。可伸缩的资源
  • 没有技术门槛
  • 快速部署,管理简单
  • 收费模式灵活,适用于中小企业

缺点

  • 无法控制基础设施
  • 技术门槛高
  • 不可控的安全级别,可能存在安全漏洞
  • 灵活性降低。
  • 依赖于厂商的可靠性和稳定性
  • 不可控的安全级别,可能存在安全漏洞
  • 灵活性有限。无法定制需求

适用场景

适合对计算资源要求灵活、可扩展的企业

适合快速部署,专注于开发的企业

适合无技术,需要控制成本按需购买,定制功能要求不多的中小企业

具体案例

AWS、阿里云、华为云等

京东云擎JAE、百度BAE、新浪SAE

企业微信、钉钉

前面花了大段篇幅讲解了关于XaaS特别是SaaS模式的概念及演进过程,目的是想告诉大家SaaS的概念是在什么样的历史背景下演变而来的。下面我们从SaaS单租户和多租户两种架构开始讲解。

单租户

在单租户的架构里,每个租户都有自己的一套服务器、基础设施和数据库,租户之间从硬件到软件都是完全隔离的。租户可以根据自己的需要做一些定制化的需求。

举个栗子,马云、马化腾和刘强东三个人去租房子,他们各自租了一间房,房间的水电、厨房、热水器等等都是各自一套,相互之间没有共用。

在外租过房子的童鞋都知道,自己单租房间的缺点是成本更高,优点则是只用考虑个人的租房需求来找房子,一个人住隐私安全性也更高。

多租户

在多租

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT果果日记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值