公司网站如何被收录,北京 好的网站制作,以营销推广为主题的方案,大兴网站建设SaaS 是什么 定义 相信大家都对云服务中的 IaaS、PaaS、SaaS 早就有所耳闻#xff0c;现在更是衍生出了 aPaaS、iPaaS、DaaS 等等的类似概念。对于 SaaS 也有各种各样的定义#xff0c;本文给出的定义是#xff1a; SaaS 是一种基于互联网提供服务和软件的交付模式#xf…SaaS 是什么 定义 相信大家都对云服务中的 IaaS、PaaS、SaaS 早就有所耳闻现在更是衍生出了 aPaaS、iPaaS、DaaS 等等的类似概念。对于 SaaS 也有各种各样的定义本文给出的定义是 SaaS 是一种基于互联网提供服务和软件的交付模式所有网络基础设施及软件、硬件运作平台的所有前期实施、后期维护都由 SaaS 平台完成用户只需要租赁软件服务并通过互联网接入使用。SaaS 模型依赖敏捷性和运营效率作为推动增长、覆盖和创新的业务战略的支柱。业内大家通常会以 Salesforce 作为 SaaS 的标杆。 价值
目前市场上越来越多的企业和组织采用 SaaS 服务来替代原来传统的软件采购部署方式其原因可以主要总结为以下几个方面。 另外相比于传统软件SaaS 的盈利模式也决定了客户的成功对于 SaaS 厂商来说极其重要只有客户成功了才会有续费 SaaS 项目才有办法继续下去。当然 SaaS 系统相比传统软件也会有一些缺点如独立性、可控性、个性化等。 基础架构 SaaS 系统通常是一个普通的分布式系统因此它一定具有分布式系统的所有组成要素如服务发现、负载均衡、序列化协议、传输协议、授权认证、网络安全等等。 入口 客户最直接接触的通常是 SaaS 系统的客户端客户端的形式可以根据业务的需求决定常见的有浏览器网页、移动端 APP、小程序、智能设备等。 客户端到服务器的入口通常是一个通用域名或者是每个租户的独立子域名。如互客的入口是 huke.163.com网易七鱼的入口是 xxx.qiyukf.com。域名的背后就一定需要 DNS 的存在需要配置出合理的 DNS 解析通常传统的基于 UDP 的 DNS 服务容易受到中间人攻击存在被劫持的风险另外也存在被运营商封禁等情况因此 SaaS 系统通常通过搭建自己的 HTTPDNS 来规避风险。 有了域名作为入口之后下一步就是客户端和服务器之间的通信协议对于少数简单的 SaaS 系统来说只要通过域名和 HTTP 协议就可以完成所有服务但大部分 SaaS 系统都会存在双向通信的需求因此还需要维护长连接通道常用的如原生 TCP 协议或 Websocket 协议。另外如果业务中有媒体流传输的需求还会用到 UDP、RTP 协议等。当然目前市场上对于各种场景和需求都有对应的成熟解决方案因此 SaaS 系统通常不会去从 0 开始解决所有问题如长链接和媒体流我们可以集成网易云信的服务来解决。 接入层 接入层通常是各种路由协议以及多层代理组成如运营商和 AS 之间通常用 BGP 协议或者三线机房内部通常会有接入的三层交换机四层代理等等。网易七鱼目前的接入方案如下图所示而对于规模较小的业务为了灵活性和性价比通常会在交换机和 Nginx 之间加入四层代理 nlb。这一层基本都是由集团的 SA 同学负责搭建和运维。 业务层 这里我们不去讨论业务上的各种设计模式和分层因此把接入层之后、数据层之前的所有服务和设施统称为业务层。通常业务层是一个 SaaS 系统研发中投入资源最大的线上问题如性能瓶颈、稳定性、安全漏洞等大部分都来自于业务层因此该层也是开发和线上运维的重点。 在业务层目前 SaaS 系统最常用的还是微服务的架构不同于 IaaS 或 PaaSSaaS 业务的一个重要特征是其业务复杂度很高、业务链路很长而微服务的架构刚好可以很好地应对这种情况。当然在业务刚开始的时候我们可以用简单的单体应用来快速实现原型验证等业务发展起来后再开始逐步微服务拆分。 流量通过接入层后一般为了系统的灵活性会通过 Nginx 的 upstream 来转发请求到网关由网关统一分发到对应的业务服务而业务服务又可以拆分为许多独立的微服务相互调用。这也就带来了 SaaS 系统中的大部分常见问题如 谁可以使用什么服务租户管理 服务在哪里服务发现 请求应该由哪个服务节点处理负载均衡 信息怎么传输传输协议 如何避免一个租户影响另一个租户资源隔离 输入和输出如何表示序列化协议 网络出现分区、超时或者服务出错了怎么办熔断、降级、服务治理 服务权限如何管理认证授权 如何保证通信安全网络安全 重要程度和依赖关系怎么样服务分级 如何保证不同机器的服务状态一致分布式数据一致性 等等...这些全都需要研发人员投入大量的精力每个点展开细说都是一个很大的话题。基于业务和技术的考虑通常还需要引入消息队列、缓存、配置中心、定时任务等组件。 数据层
所有业务逻辑最后一定都会在数据存储上得到体现。在一个 SaaS 系统中最常用的存储依然是关系型数据库如我们的 DDB、另外常用 HBase、TiDB 等作为冷数据存储ES、MongoDB 等作为对应功能的数据存储。因此 SaaS 系统中多个数据存储之间的一致性是一个需要重视的地方。 对象存储方面我们集团内有 Nos市面上的云厂商也都有相应的服务不需要自己构建。不论客户存储的对象还是系统中的某些资源为了提高客户的访问速度我们都需要有 CDN 的存在。 SaaS 业务中还有一个常见的需求就是 BI这要求系统具有数据分析能力OLAP 数据库也是必不可少的网易云商采用的是 ClickHouse。 在某些特定的业务场景也许还需要用到 TSDB录入智能设备的传感器读数用户的活动轨迹系统的状态变化等。 数据层还有一个非常重要但经常被忽视的话题就是数据合规。特别是对于 SaaS 业务因为面向的客户都是企业和组织因此数据的安全合规是非常重要的。例如网易云商有专门的中间件用于数据库的敏感数据加密。 运维能力
到目前为止一个 SaaS 系统基本已经搭建成型可以提供服务了。但是我们对系统的状态还一无所知因此还要构建足够强大的运维能力。其中包括了可观测性、计量计费、快速恢复、故障演练、系统治理各个方面。以可观测性为例我们需要采集系统中的各种数据并通过大量技术手段来观测系统的状态如系统资源、业务指标、健康状态、链路追踪、业务埋点、报警管理、错误统计、流量水位、趋势分析、变更管理等。针对 SaaS 业务的特点还需要特别对系统进行租户维度的监控和管理。 部署模式 SaaS 系统根据隔离程度的不一样可以分为三种部署模式每种部署模式都会涉及到架构的调整适配都有各自的优缺点。 共享模式 指 SaaS 系统中的所有资源如业务服务、数据存储等全部是共享的这要是绝大分部 SaaS 系统一开始采用的模式这种模式系统的优势是灵活性高资源利用率高采用集中化管理开发运维更简单。缺点是租户间容易相互影响合规性也容易被一些特定行业客户挑战还有很难为不同租户提供差异化服务。 专属模式 指 SaaS 系统中几乎所有资源都是租户独占的这种部署模式的优势是每个租户有完全隔离的环境租户之间不会有影响可以针对不同租户提供个性化的服务。但是缺点也很明显这种部署模式的资源利用率低、成本高、运维难度高、管理复杂。通常会被用于一些特定行业或者特殊需求的客户场景。 混合模式 指 SaaS 系统中有部分资源是所有租户共享的还有部分资源是租户独占的这种模式是现在大型 SaaS 系统常见的部署模式可以兼顾上面种模式的优缺点针对不同的客户提供不同的解决方案。 未来发展 上面简要介绍了搭建一个 SaaS 系统的主要过程尽管 SaaS 的设计初衷是快速为特定业务场景提供垂直解决方案但企业对跨业务跨部门的需求也越来越强烈例如营销服务一体化、私域运营等场景。因此业界无论在业务还是技术方面都还在不断地探索之中例如对于 SaaS 的成本控制合规性可扩展性针对不同租户的差异化服务等等都是 SaaS 厂商经常面临的难题。有人在探索部署方式的优化有人在探索产品的设计方案有人在探索低代码的模式还有人在探索生态合作的方案。无论如何大家的的努力都是在为了客户的成功回到我们的起点只有客户成功了SaaS 才有存在下去的价值。