从单体应用转型为SaaS模式,Amazon SaaS Boost来搞定!

如今,软件即服务(SaaS)模式已经受到众多组织的高度关注。然而,面向全新多租户架构的过渡往往需要大量时间、精力与投资,这三道难关也成了企业转型之路的“拦路虎”。

总体而言,面向SaaS的转型往往涉及引入新技术、建立多租户结构、创建新型运营工具以及采用新的计费结构等多项工作。

这些障碍,严重拖累着那些将SaaS视为自身业务增长与未来成功的关键前提的各类企业。遗憾的是,他们往往很难找到时间周期较短、成本合理且不致于带来过高应用重构或重写复杂度的理想SaaS迁移方法。

为了满足这方面需求,亚马逊云科技正式推出Amazon SaaS Boost。这是一套开源代码参考环境,为开发人员提供一种将现有应用转化为SaaS产品的高效实现途径。

在本文中,我们将一同了解启动删除运行SaaS Boost环境的完整体验。我们还将深入探讨SaaS Boost的底层架构、多租户部署模型、运营体验、计费集成以及管理应用中的核心功能。

希望本文能帮助大家了解掌握关于SaaS Boost的核心概念。如果您希望了解更多细节,请在GitHub上探索Amazon SaaS Boost开源项目

思维先行:从单体到SaaS

在具体了解Amazon SaaS Boost之前,我们先从概念模型入手。

SaaS Boost的初始版本中,我们重点关注如何创建一套能够将现有SaaS架构内所有元素整合起来的直接环境,借此消除传统迁移流程中所涉及的各项繁重工作与重复环节。

要理解这种转变,我们先要从下面这张从单体架构到SaaS产品的概念视图说起。图一展示应用程序在迁移之前以及迁移至SaaS Boost之后的架构形式。

图一 :从单体架构到多租户环境

在示意图左侧,我们看到的是经典的软件部署模型,其中每个客户都运行在独立环境之内。它可以部署在云端,也可以部署在本地数据中心。

此模式的显著特点是,各个租户之间独立管理独立运营。而且,此环境中不同客户之间往往运行多个产品版本。

虽然这套方案的早期应用形式较为简单,但随着业务规模的增长,它就会逐渐带来种种实际问题。随着越来越多客户加入到这套模型中来,企业的运营效率开始受到严重影响,成本与敏捷性也将持续恶化。最终,组织的扩展与创新能力也会因此受到拖累。

为了满足这方面需求,Amazon SaaS Boost允许组织从现有单体式应用程序起步,逐渐将其迁移至完全托管的多租户感知环境当中(如图一右侧所示)。随着单体式应用迁移至这套预构建的SaaS架构之内,所有租户都将通过统一的体验接受管理与运营。

例如,SaaS Boost环境能够实现全自动租户添加。凭借出色的底层设计,整个过渡过程将“丝般顺滑”,组织可以轻松将应用程序插入至包含一切SaaS管理与运营元素的多租户环境当中。

在将应用程序引入SaaS Boost的同时,租户管理租户部署租户感知分析计费资源计量等功能同步上线并可供使用。通过这种方式,企业能够即时以SaaS模式将产品推向市场,彻底摆脱由解决方案重构带来的开销。

加快速度提升效率正是SaaS Boost所坚持的核心价值主张。它使企业能够尽快步入SaaS模式,而后再从容考虑是否或者该如何进一步推广现代化解决方案。

开发者体验

到这里,我们已经对基础知识有了初步了解。接下来,我们聊聊Amazon SaaS Boost如何具体应用这些功能。图二所示,为将SaaS应用程序迁移至SaaS模型时涉及的各项宏观步骤。

图二:SaaS Boost流程图

1.第一步是从SaaS Boost repo处下载代码。SaaS Boost提供开箱即用的便捷流程,但开发人员也可以根据实际需求随时调整或增强使用体验。这里要向大家声明,SaaS Boost的发展很大程度上源自亚马逊云科技的引导以及整个技术社区的卓越贡献。

2.在代码下载完毕后,您可运行安装过程,在您指定的亚马逊云科技账户内安装并设置SaaS Boost。.

3.接下来,我们需要配置环境的整体设置。在这里,您可以设置端口、域、数据库设定、计费与资源计量配置等等。.

4.至此,您的SaaS Boost已经基本准备就绪。现在,您可以着手将单体式应用程序打包并部署至SaaS Boost。具体来讲,大家需要将现有应用程序容器化,再将容器镜像上传至亚马逊云科技。.

5.在完成应用程序上传与环境配置工作之后,大家即可使用SaaS Boost中的自动租户添加功能了。这一租户添加与启用过程将对各租户环境中的全部活动组件进行配置。.

6.最后一步则展现了SaaS Boost管理体验。在租户部署完成并开始运行后,您可以使用SaaS Boost应用的管理功能管理这套租户环境,并使用分析视图评估系统资源使用量与租户活动。

SaaS Boost组件构成

现在,我们已经对SaaS Boost的配置体验有了初步了解。下面,我们来看SaaS Boost环境在安装过程中部署了哪些组件。图三所示,为SaaS Boost环境在安装时所创建的各核心组件。

图三:高级SaaS Boost架构

SaaS Boost的管理与核心服务是由Amazon Lambda支持的无服务器应用模型构建而成。管理员应用则使用React所构建,并由Amazon Simple Storage Service (Amazon S3)以及Amazon CloudFront负责托管。

此外,应用程序还使用Amazon Cognito对管理员用户进行身份验证,通过REST调用与后端服务相集成(以路由形式对接一系列负责执行SaaS Boost中具体任务的微服务)。

在图三右侧,我们可以看到代表应用程序的抽象架构。这里表示的就是您的实际应用程序,其可以通过Amazon API GatewaySaas Boost服务实现交互。

大家可能已经注意到,这款应用程序中还包括计费与分析功能集成。虽然SaaS Boost核心系统之内已经包含这类服务,但不同的SaaS应用程序往往在计量/计费指标以及其他细节信息方面存在不同诉求,这意味着您需要在应用程序中添加代码来向外发布这些特定指标。

配置应用程序设定项

在SaaS Boost安装并开始运行之后,您需要登录SaaS Boost管理应用并配置SaaS环境的特定属性。在这部分,我们需要配置应用程序所特有的端口、域、计算设置、数据库、文件系统与计费选项等。

这里的应用程序配置数据对于后续入驻租户部署至关重要。因此,请首先完成这部分配置,而后再向系统内添加租户。

图四所示,为应用程序配置页面截屏。您可以在此页面的SaaS Boost管理员应用当中对各应用程序选项进行配置。

图四:配置您的SaaS应用程序

添加租户

到添加租户这一步,SaaS Boost的便捷之处就开始体现出来。稍一上手操作,大家就能感受到SaaS Boost多租户特性与传统一次性软件应用部署模式之间的鲜明对比。

在SaaS模式下,我们得以摆脱需要为每位客户独立安装及配置应用程序的固有思维模式。相反,多租户环境提供的是一套统一模型,其中包含的正是一套足以托管全体客户的统一环境。

之后,我们通过SaaS Boost的轻松便捷添加流程将新租户引入这套环境。精心设计的流程为新租户的启动与支持提供全面支持。这种高效体验,也正是SaaS业务能够以零干预方式快速增长、并持续接纳新租户的关键所在。

在这种模式下,租户添加不仅仅是一种最终用户体验,系统会获取租户配置选项并启动添加流程。在此之后,系统即可自动以可重复、可扩展的方式配置所有租户元素。

图五所示,为SaaS Boost租户添加体验中的部分活动组件。

图五:添加租户

1.在此流程中,我们将应用程序上传设定为总体添加流程中的一部分(步骤1)。这是因为任何租户的首次配置,都必须对应为该租户部署的应用程序实例。

2.您还需要在添加租户之前配置您的应用程序设定项。这部分工作对应图中的步骤2,需要使用应用程序配置数据对微服务设定项进行更新。

3.在应用程序上传完成后,即可开始添加操作(步骤3a)。SaaS Boost管理员应用直接包含添加功能。这种内置化的添加机制可帮助您轻松配置新的租户设置并启动添加流程。.这一添加流程主要服务于那些不想采用自助式体验的企业客户。如果您希望构建自助式添加体验,也可以将该页面添加至应用程序当中,通过应用程序触发添加操作(步骤3b)。

4.租户添加服务涉及多个活动组件,但其中的核心在于租户环境设置。在步骤4中,可以看到SaaS Boost为新租户环境构建提供的各自动化与Amazon CloudFormation脚本。

5.到这里,新租户已经被部署至您的统一SaaS环境当中(步骤5),所有由SaaS Boost环境管理及运营的租户也都获得了必要的路由与基础设施。.为了进一步降低SaaS Boost环境的运行阻碍,可以看到其中的各个租户都以“silo”(即孤岛)模式部署,意味着每个租户都有自己的资源栈。虽然这种方式相较于完全共享的多租户架构会在成本效率方面有所牺牲,但其优势在于能够直接接纳现有应用程序、无需对原有逻辑做出任何修改。.更重要的是,由于各租户拥有统一的管理体验,因此这种模式仍然继承了SaaS带来的诸多运营效率优势。

6.添加流程中的最后一步就是计费集成。在这一步中,添加体验会在计费系统中创建一个新客户,组织可以选定相应计费模式以对客户活动进行计费(步骤6)。

租户环境架构

为了更好地理解底层运作情况,下面我们将共同探讨如何在亚马逊云环境上构建租户环境。图六所示,为用于支持租户的几种重要架构元素。

图六:租户架构

请由上至下浏览此图,可以看到SaaS Boost环境中已经配置了两个租户。各租户都配置有一个独立的子域,用于将其路由至相应的底层架构。

在此示例中,由Amazon Route 53负责将租户环境路由至对应的独立虚拟私有云(VPC)。租户所需的一切资源,都将体现在该租户的VPC之内。

您的应用程序将被部署至Amazon Elastic Container Service (Amazon ECS)集群当中,各个集群内托管的租户工作负载将以独立形式分别扩展。

上图还包含运行应用程序可能需要的数据库及/或文件系统元素。在应用程序的实际配置流程中,您可以灵活将其设定为符合需求的特定资源。

部署应用程序更新

现在,您的租户已经运行在多租户环境之内,接下来需要考虑如何将应用程序更新部署到这些租户内。考虑到SaaS的整体价值主张,我们必须以一次部署的方式将应用程序更新应用于全体租户。

SaaS Boost将为您分担职责压力,大家无需为应用程序部署额外编写任何DevOps部署工具。

当有应用程序的新版本上传至SaaS Boost环境时,系统会自动将更新部署至所有租户环境。

计费集成

应用程序转型至SaaS后,其计费模式往往也会发生转变。企业可能需要由长期合约计费模式,转变为基于订阅及/或基于资源消费的计费模式。

图七:计费集成

为了支持这方面过渡,SaaS Boost直接提供SaaS计费功能。这是一套现成的计费解决方案,能够与各类第三方计费服务(本文示例中为Stripe)集成起来。如此一来,您既可以灵活部署活动组件,同时也可以修改SaaS Boost选项以支持更多计费服务方案。

图七所示,为这一计费体验的实现基础。在流程中,我们首先在Stripe内创建账户并获取API密钥(步骤1与2)。之后,您将通过SaaS Boost管理员应用配置API密钥(步骤3),此项操作又会进一步触发应用程序的生产或计费单元设置(步骤4)。

为了将整个计费体验中的各项元素串连起来,大家还需要在应用程序中发布计费事件(步骤7)。这些事件的性质由您选定的结算方式决定。在事件发布时,计费系统会首先将计费事件解析为特定订阅、而后再将事件发送至Stripe(步骤8与9)。

运营分析

要成功运行SaaS业务,大家需要关注环境的运营视图,了解租户如何使用环境资源。通过这部分洞见数据,您将识别出可能影响到当前SaaS Boost环境配置的租户状态问题或租户资源使用趋势。

为了满足这方面需求,SaaS Boost提供一系列以租户为中心的统计图表供您分析租户资源使用趋势。图八即为部分示例视图,全部图形均由SaaS Boost随附的内置分析功能提供。

图八:内置分析功能

SaaS服务商往往也需要收集与环境相关的各类指标。为此,SaaS Boost同样支持与预配置基础设施相集成,借助Amazon QuickSight汇总并显示包含自定义指标的统计视图。

前路漫漫,展望未来

请大家注意,当前版本的SaaS Boost只是我们将现有应用程序转化为SaaS交付模式的起点。部分客户也许可以快速上手、借此将应用程序迁移至SaaS Boost,但也有不少朋友可能需要深入研究源代码、精心调整解决方案以匹配自身实际需求。

在后续版本中,SaaS Boost团队希望借助技术社区之力推动项目发展。新版本有望支持更为丰富的应用程序现代化途径,并逐步引入更多与基础设施共享及微服务紧密相关的新策略。

感兴趣的朋友请在GitHub上关注SaaS Boost开源项目,用您的反馈指引我们向着正确方向迈进。

关于亚马逊云科技SaaS Factory

亚马逊云科技 SaaS Factory立足SaaS转型旅程中的各个环节向组织客户伸出援手。无论您希望构建新产品、迁移现有应用程序还是在亚马逊云科技中优化SaaS解决方案,我们都能为您提供有力帮助。请访问亚马逊云科技SaaS Factory洞见中心,了解更多技术/业务信息以及最佳实践:

https://aws.amazon.com/partners/saas-factory?utm_source=apn&utm_medium=blog&utm_campaign=in_hub#AWS_SaaS_Factory_Insights_Hub

也欢迎大家联系您的客户服务代表,咨询如何参与项目并与亚马逊云科技SaaS Factory建立合作。

注册即可随时了解关于亚马逊云科技SaaS进展的新闻、资源与活动。

注册链接:

https://partners.awscloud.com/SaaS.html?utm_source=apn&utm_medium=blog&utm_campaign=opt_in

参考资料

Amazon SaaS Boost:

http://www.aws.com/partners/saas-boost

GitHub:

https://github.com/awslabs/aws-saas-boost

Amazon Simple Storage Service:

https://aws.amazon.com/s3/

Amazon CloudFront:

https://aws.amazon.com/cloudfront/

Amazon Cognito:

https://aws.amazon.com/cognito/

Amazon Elastic Container Service:

https://aws.amazon.com/ecs/

亚马逊云科技 SaaS Factory:

https://aws.amazon.com/partners/saas-factory?utm_source=apn&utm_medium=blog&utm_campaign=sf_home

本篇作者

Tod Golding

亚马逊云科技SaaS Factory首席合作伙伴解决方案架构师

听说,点完下面4个按钮

就不会碰到bug了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值