saas领域什么意思 saas是什么意思


你为什么需要SaaS?软件即服务(Software-as-a-Service , SaaS)是一种灵活的软件分发模式,可以由少至一人、多至数千人的组织来运营 。云服务的出现让任何人都可以独立运行自己的SaaS,并在此基础上建立免费的增值业务 。
与其他类型的软件服务相比,其系统设计相对简单 。但是 , 由于没有合适的基准架构,如果我们在设计SaaS时没有认真思考,结果可能会变得一团糟 。在我看到的一些例子中,SaaS平台最终变成了一个庞大但脆弱的单一Web应用 , 其中充满了各种各样的功能 。
本文的目的是为您提供一个参考架构,以实现SaaS的可伸缩性和可维护性 。
SaaS平台的要求产品需求用户和用户组的访问控制 。向用户和组织提供订阅层,其中每种订阅类型都可以访问一组产品 。托管内部管理工具的能力 。可扩展的功能 。我们应该能轻松添加新的产品和功能集 。
设计目标隔离的服务带来清晰的责任归属与点分离 。减小任何更改的影响半径 , 比如说分析仪表板中的错误不应该影响管理仪表板 。隔离运行 Web 应用程序 。每个 Web 应用程序都提供一组相关的功能来服务我们的客户 。在大型公司中,每个 Web 应用程序都可以有自己的专门团队来构建和运行 。
解决方案:隔离和重用将服务隔离成逻辑组件的设计可以使我们的SaaS更具可伸缩性 。我们应该改进我们的架构,并在扩大规模时打破常规:规模越大,架构就越容易管理 。即使只有一个孤独的workshop开发人员 , 他也可以轻松运行和管理多个服务 。尤其是现在我们有了各种可以编排微服务的云服务,这种事情就更容易做了 。
【saas领域什么意思 saas是什么意思】因为我们计划在SaaS平台上运行这些功能Web应用程序,所以我们应该首先考虑“我们可以重用什么?”这个问题 。
隔离;隔离孤立的Web应用程序是通过将相关功能组合在一起而形成的Web应用程序,或者是代表一个产品的一组Web应用程序 。具体我称之为“产品Web应用”,后面会进一步介绍 。
Web应用程序中相关功能的分组例如,所有的“分析报告功能”可以合并到一个独立的Web应用程序中,该应用程序将由一个在构建分析报告产品方面具有相关领域知识的专门团队来构建和维护 。在大公司中,每个产品Web应用程序都有自己专门的团队来构建和运行 。
内部和公共(可选)您的产品Web应用程序也可以分为两个部分:内部部分和公共部分 。在与内部公共部分明确区分后,可以在自己的私有网络中路由一套专用的安全管理工具 。
这些服务在内部和公共区域的代理由“路由服务”处理,这将在下面的章节中描述 。
把某人 。身居要职这些是由不同功能的Web应用程序及其相应的服务共享的通用功能 。每个功能Web应用程序都需要使用下面列出的这些功能 。
包裹这些是构成我们SaaS的逻辑组成部分 。
路由服务每个请求都需要被路由到正确的页面 。当用户访问yourWebsite.com/your-path,时 , 您的路径需要将用户转到相关的请求页面或功能Web应用程序 。路由确保用户获得他们请求的内容 。
在本文的示例中,我们将需要路由服务调用另一个服务来获取路径和Web应用程序URL映射,以及所需的权限 。
这些映射应该在运行时更新 。例如 , 在需要引入新页面或需要更改用户权限时更新,而不发布 。
路由还负责内部或公共产品Web应用程序 。它可以部署到两个独立的运行实例中 。
以及公共和私有路由服务设置的高级设计 。
实现技巧:Node.js的http-proxy-middleware或者Nginx的Reverseproxy是两个可行的选择 。如果您不需要在运行时以编程方式从其他服务检索路径、URL和权限 , 后者是理想的 。更多信息请参考下面的“Web应用程序仓库”一章 。
产品Web应用程序每一个产品Web应用都是通过一个内部可访问的URL公开的,比如https://my-product-app-1 . my domain . local,有些是路由服务路由的 , 供订阅者访问 , 有些还是内部访问 。
由路由服务路由的产品Web应用程序
在后台 , 这可以是单个或一组具有Web前端的微服务 。这些Web应用彼此独立 , 有自己独立的代码库、支持服务和部署管道 , 理想情况下,它们归不同的团队所有 。在SaaS平台,他们的分组模式与他们所有团队的结构一致 。
这样,我们可以将大型Web项目分解成许多可管理的单元 。把这个模式想象成把一块大牛排切成许多小块 。产品Web应用程序包含一组相关的功能,这些功能不应与其他Web应用程序重叠 。

推荐阅读