SaaS云原生应用典型架构技术分享

简介: SaaS服务没有任何软硬件维护费用,服务模式使用非常灵活,企业花费少量的费用便能享受优质服务,让企业集中资金流进行核心业务探索与运营。SaaS是即下载即使用的服务模式,大大节省了系统构架成本。但SaaS开发过程中的各种问题,如人力成本、多租户管理、高可用、安全性等,让企业在SaaS化转型时有所顾虑。围绕当下许多企业青睐的SaaS应用开发,今天给大家带来主题为《SaaS云原生应用典型架构》技术分享。

企业数字化转型,为何SaaS模式如此重要?

随着全球进入后疫情时代,数字经济重要性日益显现。SaaS作为一种有效的软件交付形式,可以让企业IT团队将工作的重心从部署和业务系统定制,转移到管理业务系统所提供的服务上来。

SaaS服务没有任何软硬件维护费用,服务模式使用非常灵活,企业花费少量的费用便能享受优质服务,让企业集中资金流进行核心业务探索与运营。SaaS是即下载即使用的服务模式,大大节省了系统构架成本。但SaaS开发过程中的各种问题,如人力成本、多租户管理、高可用、安全性等,让企业在SaaS化转型时有所顾虑。

在长期的SaaS应用上云技术支持实践中,华为云总结了企业在SaaS化转型过程中遇到的很关键的问题:

  • 基础设施选择:在什么基础设施上部署SaaS系统,是选择公有云还是自有数据中心方式?
  • 系统架构设计:SaaS系统的访问性能、运维监控、系统弹性扩容、安全性以及合规性等如何设计?
  • 数据存储架构设计:如何设计安全可靠,可灵活扩展的数据存储架构?

不仅如此,租户权限管理、租户间干扰以及多租计费策略等问题同样困扰企业转型。

一图了解SaaS多租户架构

其实,很多人对于一些SaaS技术问题还是知之甚少,例如企业在进行SaaS企业软件选型时,仍不了解“多租户”与“独立架构”是什么概念,二者之间有什么区别。

用现实中的房子例子是很好解释的。“独立架构”如同一个别墅,里面有属于自己的餐厅、房间、厨房等设施,所有设施都是独立配置、部署的;“多租户”就如同住在公寓,每个人有一个属于自己的房间,健身房、客厅等属于公共区域,大家共享这些资源。

独立部署架构在业务发展前期有比较有优势,可根据客户需求灵活配置资源量、独立部署。但随着企业增长,老的业务系统依旧存在,企业不得不面临运维效率、成本等挑战,这些挑战最终会影响到企业业务的增长和创新。为解决这个问题,系统向SaaS演进似乎是必然的选择。从SaaS应用本身来看:

image.png

与独立部署不同,在SaaS系统中,有租户概念,通常一个企业或者组织作为一个租户(Tenant),租户下会有多个用户;租户与租户之间会共享一定资源,为保证租户安全性,在租户架构设计时,会做好逻辑或者物理隔离,逻辑隔离和物理隔离也可以同时存在,如SaaS混合部署模式。在创建租户时,需要分配数据空间和配置租户路由规则,租户和租户下的用户可能有不同的权限配置,根据路由规则获取授权信息。

租户路由是SaaS应用的核心模块,当用户发起请求时,租户路由模块根据请求携带的租户ID信息,将请求路由到该用户所属租户运行环境、数据空间等。在SaaS租户隔离的逻辑下,租户路由模块是保证租户所属用户请求互不干扰的关键。华为云技术团队开发了租户路由模块,并进行了开源,可前往gitee的saas-tenant-router-starter项目了解或者贡献。

SaaS改造升级的方向通常是容器化的微服务架构,华为云企业级云容器引擎CCE可应用提供容器运行和编排环境,基于云容器引擎可以快速实现集群创建、应用部署和运维管理;在SaaS应用场景下,CCE集群可以提供集群、namespace以及pod层级的资源隔离;华为云微服务引擎CSE为SaaS应用提供微服务应用注册发现、配置下发、服务治理等能力,其中,配置下发能支持在租户创建时,配合消息总线,动态配置多租户运行环境。

在云上构建SaaS应用时,租户间隔离从应用层、数据库到基础设施层(计算、存储以及网络)都是应该关注的,在应用层我们通过租户路由插件实现租户间隔离;数据库层多租模式可支持数据库实例、数据库schema以及表字段实现隔离;在计算资源层,租户间隔离借助云容器引擎CCE的namespace和pod能力;在网络层面,可通过VPC、子网实现租户间隔离,每个租户应用可以放在一个VPC或者一个子网中,但是租户数量会受到可创建的VPC和子网配额限制。

SaaS多租户架构不仅包含SaaS基础应用,还提供了配套的 SaaS运营与运维平台。这也是相对于独立部署架构的独特优势。从SaaS运营与运维角度来看:

  • 运营方面:

在技术方面,SaaS场景的租户管理面负责租户创建,配置管理,SaaS租户管理员可以在用户购买SaaS服务后,配置租户访问域名、租户管理员以及租户权限等信息;
计费模式有按照用户数、活跃用户、特性+服务等级、基础版免费+增值特性付费等多种计费模式,设计优秀的计费模式能保证在租户和产品功能特性持续增加的背景下,仍然能有不错的收益;
运营分析是SaaS在实现持续业务增长必不可少的内容,从技术维度看,涉及用户数据采集、数据实时处理和分析、数据可视化等内容,支持企业决策和管理。

  • 运维方面:

为SaaS系统建立可观测运维是保证良好租户、及时定位和解决用户问题的基础,包括指标监控、应用链路追踪和日志管理等;在SaaS应用系统下,在建立统一租户运维设施基础上,也需充分考虑不同租户运维需求。
在系统中提供不同层级的资源监控、告警是基础的运维能力,华为云提供了完备能力,如应用运维管理AOM、云监控服务CloudEye等;
租户日志管理采集可按照租户维度进行,根据上层分析需求,再做数据的统一聚合;
链路追踪通常借助APM能力实现,对各个服务调用的性能、健康状态进行监控,及时做资源调整。

多种多租户架构方式,肯定有符合你的那一款

多租户架构方式,使得不同企业之间共享代码及基础设施成为可能,从而提高了代码及底层基础设施的效率,而通过这种资源使用的效率提升,更是降低了SaaS服务的运营成本。事实上,SaaS应用的成功很大程度上依赖于多租户架构。

当然,企业在考虑搭建SaaS系统时,需要优先确定哪种租户模式适合您的客户和业务特点,不同租户模式并不会影响您的业务功能,但对商业模式、技术架构、租户隔离、租户成本以及后续运维运营费用会产生影响。从租户资源共享程度来看,多租户模式可以按如图所示,分为三类:独享资源租户模式、共享资源池租户模式、混合租户模式

image.png

独享资源租户模式
每个用户单独交付部署一套环境,例如,像具有“web层-应用层-数据层”多层应用系统,每个用户得到一套独立的web层、应用层以及数据层,每一层之间互不共享,实际上是一种物理隔离模式,开发实现较为容易,但随着用户数增多,维护成本会增加,每套系统实际产生的收益会减少。

共享资源池租户模式
共享模式能提高资源利用效率,设计良好资源共享模式和商业策略将会为企业提升盈利能力;共享资源池模式下,每个用户共享相同的资源,不同用户之间采用逻辑隔离方式,为了避免租户间互不影响,在租户架构设计和开发上会有些复杂,但会带来长期的收益。由于现在多采用分层架构进行开发,为了方便展示,我们将系统架构分为三层:web层、应用层以及数据层。针对每一层级,我们根据部署情况,可以分为如下三类:

全共享模式

web层、应用层以及数据层都采用共享资源池模式部署。对于用户体验环境,可以优先考虑全共享资源池模式,但并不等同于全共享模式只适合用户体验环境使用,租户业务量稳定且对计算、内存以及数据库IO等资源需求稳定的场景,全共享模式也是合适的。

数据层共享模式

web层和应用层每个租户独立部署,但共享数据层,例如数据层的关系数据库-MySQL,可采用不同层级的逻辑隔离方式,如数据库实例、数据库database以及表级别隔离方式。对计算资源和内存资源消耗比较大的业务场景,如AI分析、大数据计算等,可以优先考虑数据层共享资源池模式,应用层可以进行物理隔离模式部署,每个租户应用层可以独享资源,互不干扰。

租户应用环境共享模式

数据层不共享,例如每个租户配置一个数据库实例,web层和应用层采用共享方式部署,共享相同的租户运行环境,如采用云容器引擎CCE集群,按业务模块部署,根据租户需求弹性扩容node节点和容器pod。对数据库IO要求比较高,应用层处理简单业务逻辑的业务场景,如OA、ERP等,可以优先考虑应用层共享资源池模式,数据层进行物理隔离模式部署,每个租户应用层可以独享资源,互不干扰,如在华为云上,可以采用不同的RDS实例进行隔离。

混合租户模式
综合独享资源模式和共享资源池租户模式特点,部分用户采用共享资源池租户模式,另一部分用户采用独享资源模式;在交付系统时,根据客户对费用、资源隔离性和安全性要求,选择对应交付模式。

一个良好设计、架构优雅的SaaS应用可以给应用提供商和客户带来双赢。华为云SaaS 服务架构帮助企业应用SaaS的过程中,真正获得交付门槛低、配置要求低、技术难度低、操作难度低、使用成本低等服务价值。

相关文章
|
2月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
565 36
|
4月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
791 3
|
2月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
271 6
|
3月前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
3月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
211 8
|
3月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
460 0
|
2月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
|
4月前
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
268 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
4月前
|
机器学习/深度学习 数据采集 存储
技术赋能下的能源智慧管理:MyEMS 开源系统的架构创新与应用深化
在全球能源转型与“双碳”战略推动下,MyEMS作为基于Python的开源能源管理系统,凭借模块化架构与AI技术,助力重点用能单位实现数字化、智能化能源管理。系统支持多源数据采集、智能分析、设备数字孪生与自适应优化控制,全面满足国家级能耗监测要求,并已在制造、数据中心、公共建筑等领域成功应用,助力节能降碳,推动绿色可持续发展。
142 0

热门文章

最新文章