您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
saas是什么意思(saas领域什么意思)
路由,身份验证,产品saas是什么意思(saas领域什么意思)
发布时间:2020-12-06加入收藏来源:互联网点击:
很多朋友想了解关于rbac的一些资料信息,下面是小编整理的与rbac相关的内容分享给大家,一起来看看吧。很多朋友想了解关于web技术的一些资料信息,下面是小编整理的与web技术相关的内容分享给大家,一起来看看吧。
为什么需要 SaaS?
软件即服务(SaaS)是一种灵活的软件分发模式,可以由少至一人、多至数千人的组织来运营。云服务的出现让任何人都可以独立运行自己的SaaS,并在此基础上建立免费的增值业务。
与其他类型的软件服务相比,其系统设计相对简单。但是,由于没有合适的基准架构,如果我们在设计SaaS时没有认真思考,结果可能会变得一团糟。在我看到的一些例子中,SaaS平台最终变成了一个庞大但脆弱的单一Web应用,其中充满了各种各样的功能。
本文的目的是为您提供一个参考架构,以实现SaaS的可伸缩性和可维护性。
SaaS 平台的需求
产品需求
用户和用户组的访问控制。为用户和组织提供订阅层,其中每种订阅类型都可以访问一组产品。能够托管内部管理工具。可扩展功能。我们应该能够轻松地添加新产品和功能集。
设计目标
隔离服务带来明确的责任归属和点位分离。减少任何更改的影响半径,例如,分析仪表板中的错误不应影响管理仪表板。运行独立的Web应用程序。每个Web应用程序都提供一组相关的功能来服务我们的客户。在大公司中,每个Web应用程序都可以有自己的专门团队来构建和运行。
解决方案:隔离和重用
将服务隔离成逻辑组件的设计可以使我们的SaaS更具可伸缩性。我们应该改进我们的架构,并在扩大规模时打破常规:规模越大,架构就越容易管理。即使只有一个孤独的workshop开发人员,他也可以轻松运行和管理多个服务。尤其是现在我们有了各种可以编排微服务的云服务,这种事情就更容易做了。
因为我们计划在SaaS平台上运行这些功能Web应用程序,所以我们应该首先考虑“我们可以重用什么?”这个问题。
隔离
孤立的Web应用是通过将相关功能组合在一起而形成的Web应用,或者是代表一个产品的一组Web应用。具体我称之为“产品Web应用”,后面会进一步介绍。
在 Web 应用程序中分组相关功能
例如,所有的“分析报告功能”都可以合并到一个独立的Web应用程序中,该应用程序将由一个在构建分析报告产品方面具有相关领域知识的专门团队来构建和维护。在大公司中,每个产品Web应用程序都有自己专门的团队来构建和运行。
内部与公共(可选)
你的产品Web应用也可以分为两部分:内部部分和公共部分。在与内部公共部分明确区分后,可以在自己的私有网络中路由一套专用的安全管理工具。
这些服务在内部和公共区域的代理由“路由服务”处理,这将在下面的章节中描述。
重用
这些是不同功能的Web应用程序及其相应的服务所共享的通用功能。每个功能Web应用程序都需要使用下面列出的这些功能。
以下是组成我们的SaaS的逻辑组件。
组件
m; text-align: left;">每个请求都需要路由到正确页面。当用户访问 yourWebsite.com/your-path 时,/your-path 需要将用户转发到其关联的请求页面或功能 Web 应用。路由服务可确保用户得到他们所请求的内容。在本文的例子中,我们将需要路由服务(routing service)调用另一个服务以获取路径和 Web 应用程序 URL 映射,以及所需权限。
这些映射预计将在运行时更新。例如,在需要引入新页面或更改用户权限而无需发布的情况下更新。
路由服务还负责内部或公共的产品 Web 应用。可以将其部署到两个单独的运行实例中。
实现技巧:Node.js 的 http-proxy-middleware 或 Nginx 的 Reverseproxy 是两个可行的选择。如果你不需要在运行时从其他服务中以编程方式检索路径、URL 和权限,则后者是理想的选择。有关更多信息,请参见后文的 "Web 应用仓库 " 章节。
产品 Web 应用
每个产品 Web 应用都通过一个可在内部访问的 URL 公开,例如 https://my-product-app-1.mydomain.local。其中一些由路由服务路由,以供订阅的用户访问,而另一些仍在内部访问。
在后台,这可以是单个或一组带有 Web 前端的微服务。这些 Web 应用彼此独立,有自己独立的代码库、支持服务、部署管道,并且理想情况下是由不同的团队所有。在 SaaS 平台中,它们的分组方式与其所有团队的结构保持一致。
这样以来我们就能将大型 Web 项目分解为许多可管理的单元。可以将这种模式想象成是将大块牛排切成许多小块。一个产品 Web 应用包含一组不应与其他 Web 应用重叠的相关功能。
实现技巧:产品 Web 应用可以是任何 Web 应用程序,例如常见的 Express、Node.js 和 React 堆栈。将设计系统与可复用的微前端(例如 Mosaic 或 Open Components)搭配使用,可以让你的产品拥有一致的外观和体验。
Web 应用存储库
这个服务负责保存多个团队拥有的 Web 应用程序的记录。路由服务调用 Web 应用存储库,以获取与所请求路径对应的 Web 应用 URL(匹配某个条目)。
下面是一个 Web 应用存储库表示例,用来说明它的功能。
基于角色的访问控制(RBAC)服务将提供权限信息,以帮助我们检查登录用户是否有权访问产品 Web 应用。
如果要维护的产品 Web 应用条目数量很少,这里就可以用一个简单的路由和硬编码哈希映射的代理。
实现技巧:这既可以是具有自己的 Web 管理 UI 的 RESTful 服务,也可以是简单的基础架构,比如说是位于路由服务中,或者来自对象存储(如 AWSS3)的代码配置文件。具体的实现方式将取决于所需的规模和可配置性。如果你要继续考虑服务实现,则可以将 Java、Go 或 C#与 RDBMS 或 NoSQL 数据存储搭配使用。
对于这个服务来说,验证过程是非常重要的,如果路径或 Web 应用 URL 的配置不正确,则可能会影响你服务的可用性。如果无法确定要支持的产品数量,请使用进化原型方法。你不必在开发周期的早期就构建这个服务,因为一开始只用一个简单的配置文件就够了。
身份验证
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |