SaaS Boost使用与开发文档

概念解释

计算巢服务:云资源与软件或应用的编排集合。一旦服务被发布和上线,终端用户就可以基于这些服务创建实例,以此来获取服务提供商的具体服务内容。

计算巢服务ID:唯一标识一个计算巢服务。

服务商:软件提供者,希望对软件进行商业化。

用户:希望使用服务商的软件的人群。

计算巢SaaS Boost:计算巢出品的一款开源框架。计算巢提供了该框架的一键部署方案,可帮助服务商快速将其软件实现商业化。

计算巢SaaS Boost实例:通过计算巢一键部署方案创建的模版应用,服务商可直接访问Web界面构建其软件商城,并分享该界面给用户,实现软件的售卖。计算巢SaaS Boost实例也是通过计算巢进行部署的。

SaaS Boost商品:服务商通过访问其Web界面,手动生成的一个商品,该商品具有一个唯一的商品码,用于关联服务商待售卖的软件(计算巢服务)。

SaaS Boost公网访问地址:该SaaS Boost实例绑定的公网IP或域名,用于服务商和用户进行公网访问。也用于与计算巢进行API交互。

SaaS Boost套餐:每一个商品可配置不同套餐,比如低配版,基础版,高配版,每个套餐具备不同的价格。

计算巢服务套餐:计算巢服务侧的套餐,可对不同套餐进行参数管理。

介绍

计算巢SaaS Boost是由阿里云推出的一款开源的支付和订阅管理框架,旨在帮助软件开发者基于计算巢快速构建、部署、扩展和售卖软件(同时支持私有化部署和全托管模式), 打通软件的商业化之路。它提供了一组开箱即用的功能和组件,使用户聚焦于业务逻辑的开发,而极大地降低软件上云应用的复杂性和成本。 计算巢SaaS Boost提供了许多功能,包括:

  1. 售卖能力:通过实现计算巢服务和SaaS Boost商品的双向绑定可快速实现软件软件售卖。支持国内支付宝支付。
  2. 计算巢能力:SaaS Boost底层为阿里云计算巢,可加速软件服务商在云上的部署、交付和管理服务, 实现一周上云。
  3. 多租户架构:SaaS Boost为多租户应用程序提供了强大的多租户数据隔离和管理功能,使得开发者可以轻松地构建和管理多个租户的数据。
  4. 持续集成和持续交付(CI/CD)能力:计算巢SaaS Boost提供了云效流水线,支持CI/CD能力,使开发者能够实现自动化的代码构建、测试和部署。可快速迭代和交付新功能,提高开发效率和产品质量。
  5. 套餐管理:SaaS Boost提供了多套餐配置,允许开发者灵活地定义和管理不同套餐,并处理套餐的计费和配额。
  6. SaaS应用程序监控:SaaS Boost提供了监控功能,帮助开发者跟踪和分析应用程序的性能和运行状况,并及时发现和解决问题。

SaaS Boost快速部署

前提条件

使用阿里云计算巢SaaS Boost服务实例,需要对部分阿里云资源进行访问和创建操作。因此您的账号需要包含如下资源的权限。 说明:当您的账号是RAM账号时,才需要添加此权限。

权限策略名称 备注
AliyunECSFullAccess 管理云服务器服务(ECS)的权限
AliyunVPCFullAccess 管理专有网络(VPC)的权限
AliyunROSFullAccess 管理资源编排服务(ROS)的权限
AliyunCloudMonitorFullAccess 管理云监控(CMS)的权限
AliyunOSSFullAccess 管理对象存储服务(OSS)的权限
AliyunOOSFullAccess 管理运维编排服务(OOS)的权限
AliyunFCFullAccess 管理函数计算(FC)服务的权限
AliyunOTSFullAccess 管理表格存储服务(OTS)的权限
AliyunComputeNestSupplierFullAccess 管理计算巢服务(ComputeNest)的商家侧权限

计费说明

计算巢SaaS Boost部署涉及的费用主要涉及:

  • 云服务器服务(ECS)费用
  • 表格存储(OTS)费用
  • 函数计算(FC)费用
  • 对象存储(OSS)费用
  • 流量带宽费用

参数说明

ECS模版部署参数

参数组 参数项 说明
服务实例 服务实例名称 长度不超过64个字符,必须以英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)
地域 服务实例部署的地域
流水线配置 企业 选择/新建您的企业
GitHub服务连接 连接到GitHub的凭证。可通过账号密码方式创建
GitRepoEndpoint 仓库地址
付费类型配置 付费类型 按量付费/包年包月
ECS实例配置 实例类型 部署的ECS实例类型
实例密码 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
可用区配置 交换机可用区 该实例类型可部署的可用区
网络配置 是否新建VPC 选择是否在当前可用区新建VPC
专有网络VPC实例Id 选择当前可用区下的VPC实例
交换机实例Id 选择当前VPC支持的交换机

ACK模版部署参数

参数组 参数项 说明
服务实例 服务实例名称 长度不超过64个字符,必须以英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)
地域 服务实例部署的地域
ACK集群配置 集群ID 阿里云上购买的ACK集群
POD安全角色应用 用于给POD分配合适的RAM角色,避免越权
镜像配置 服务端镜像 前后端一起打包的镜像。包含boost.server和bootst.front
定时任务镜像 boost.serverless

ECS和ACK模式部署区别说明

ECS模式是主服务部署到一台ECS机器上,定时任务以函数计算的方式发布到阿里云FC处,该模式自带了云效流水线,服务商修改完代码后可直接实现CI/CD。 ACK模式通过Helm部署到对应的ACK集群中。不具备流水线,需要用户自己打包服务端镜像:即主服务,包含Boost.server和boost.front代码,打包Job镜像,即Boost.serverless并自己管理。

部署流程

部署计算巢SaaS Boost的流程如下:

1. 创建计算巢服务

  1. 配置您的SaaS应用(计算巢Service)
    • 创建您的计算巢Service。见文档下方 开发者指南-快速创建服务。更详细的信息见官方文档快速创建服务

2. Fork当前仓库

Fork当前仓库到您的个人仓库

3. 创建支付宝沙箱账号

指引图片中被红框框住的参数在创建服务实例中会被使用到。创建支付宝沙箱账号和创建计算巢服务实例步骤可颠倒顺序。

  1. 按照支付宝沙箱文档中的说明,创建支付宝沙箱账号。其中应用网关地址和授权回调地址待创建好服务实例后回填。

Image

  1. 保留支付宝沙箱应用的私钥和支付宝的官方公钥

Image

4. 创建计算巢服务实例

  1. 访问计算巢控制台选择SaaS Boost一键部署服务
  2. 按照提示填写部署参数

  3. 选择要部署的服务。

  4. 选择部署地域
  5. 填入支付宝沙箱信息(可跳过)Image
  6. 在流水线配置中,创建您的企业。根据前文fork的仓库信息创建Git连接凭证,填入前文fork的仓库地址。

    1. 创建云效企业 Image

    2. 进入流水线 Image

    3. 点击【全局设置】并进入 Image

    4. 选择右上角Github服务连接并新建 Image

    5. Github处授权

      Image

  7. 选择付费类型和想要部署的Ecs实例规格及部署可用区 Image

  8. 选择/新建专有网络(VPC)和交换机(VSW) 为了减少参数的填写和理解,建议选择新建。 Image

  9. 确认同意服务协议并点击立即创建 进入部署阶段。等待资源创建完成和流水线执行完成。 Image

  10. 服务实例创建好后回填参数(可跳过)

    1. 在部署的实例信息中将AlipayNotifyUrl和AlipayReturnUrl分别回填到支付宝沙箱应用配置中的应用网关地址和授权回调地址( 步骤2.1)

    Image 2. 等待流水线执行完成,可按下图方式访问流水线,查看流水线执行进度 img.png 3. 流水线运行成功 img.png

    5. 访问计算巢SaaS Boost服务

点击部署好的服务实例详情页的Endpoint即可访问示例SaaS Boost界面。

image.png

使用

一旦计算巢SaaS Boost部署完成(如为ECS部署方式还需等待流水线执行完成),您就可以开始使用它来开发、部署和销售您的软件应用程序。以下是一些关键的使用说明:

  1. 配置/修改服务的套餐(可选)

    • 上传部署物或使用快速ROS模版搭建您服务的计算巢Service。
    • 在application.properties文件中配置套餐
    • 重新运行流水线,完成SaaS应用的部署。
  2. 支付宝沙箱测试(必选):在正式售卖前,请利用支付宝沙箱APP测试售卖能力。

    1. 如果在创建计算巢服务实例处选择跳过配置支付宝信息。则在使用前需要进行配置。见"对支付宝服务的配置进行修改"一节
    2. 在支付宝沙箱工具中下载支付宝客户端沙箱版安卓APP

    Image

    1. 在精选服务界面选择想要购买的软件商品

      img.png

    2. 使用沙箱应用中提供的账号密码进行支付测试。

    3. 查看已部署的服务实例详情

    image.png

    1. 查看已部署服务实例监控

    image.png

    1. 查看历史订单

    image.png

  3. 在通过沙箱测试后,务必再次使用正式的支付宝账号进行售卖测试。

    1. 访问支付宝开发者控制台
    2. 创建网页/移动应用
    3. 按照提示填写应用名称,商家账号和图标
    4. 依次配置如下参数 img.png
    5. 选择接口加密。方式选择密钥加密
    6. 下载官方密钥生成工具。点击生成密钥即可。
    7. 将得到的公钥上传
    8. 下载支付宝公钥
    9. 设置接口加密方式为AES
    10. 设置应用网关地址,即支付后支付宝校验的回调地址,对应服务实例详情处: AlipayNotifyUrl
    11. 设置授权回调地址,即支付后支付宝重定向的页面,对应服务实例详情处:AlipayReturnUrl
    12. 将boost.common包中激活的application-*.properties配置的沙箱支付宝网关地址修改为如图所示的正式版网关地址。将配置文件中的支付宝沙箱官方公钥替换为正式版公钥。
    13. 将您自己的应用私钥和支付宝应用公钥在OOS参数仓库进行修改。详见开发者指南-对OAuth服务的配置进行修改
    14. 重新运行流水线
  4. 进行正式支付宝的购买测试

开发者指南

Saas Boost 商品与套餐管理指南

本文档旨在指导如何在Saas Boost平台上适当地管理和定价商品,以及如何保持商品与计算巢(Calculating Nest)服务和套餐之间的一致性。

商品与服务的关联

在Saas Boost平台上创建的每个商品应对应计算巢中的单个服务。商家可基于此服务为商品设定一个基础价格。

创建商品

  1. 登录到Saas Boost。
  2. 导航至商品管理页面。
  3. 点击新增商品按钮进入创建界面。
  4. 输入服务相关信息,并在服务ID字段中填写对应的计算巢服务ID。
  5. 完整填写商品信息,包括名称、描述和基础定价。
  6. 点击提交,完成商品创建。 image.png

计算巢侧的套餐

此处的套餐用于管理部署的软硬件参数。 通过套餐设置功能,服务商可以将服务中的部分或全部参数配置为套餐,以供用户选择,避免用户在一个服务中配置较多参数导致的用户学习成本太高或者选配出错。

服务商可以配置多个套餐,给用户提供不同场景的最佳配置实践。

在创建服务实例时,必须选择一个套餐,再配置套餐外的参数即可创建服务实例。 更详细的信息见计算巢官方文档:配置套餐

Saas Boost侧的套餐

此处的套餐用于管理计算巢套餐的价格。 在Saas Boost中为商品设定的每个套餐应对应计算巢中的相应服务套餐。每个套餐的名称必须与计算巢中的套餐名称完全一致。在这个过程中,开发者应该先在计算巢中进行套餐配置,而后在SaaS Boost中对上述配置的套餐定制价格。

套餐命名统一

为保证用户体验的一致性,请确保计算巢中的套餐名称与Saas Boost上的套餐名称相匹配。

添加SaaS Boost套餐与定价

  1. 选择已创建好的商品,并进入其套餐管理界面。
  2. 点击新增套餐,进入套餐详细配置页面。
  3. 套餐名字段中准确输入计算巢中对应套餐的名称。
  4. 根据套餐配置设定一个定价。
  5. 确认信息无误后保存新套餐。 计算巢处套餐配置示例如下所示: image.png SaaS Boost处套餐示例如下所示: image.png

注意要点

  • 保持Saas Boost上的套餐名称与计算巢中套餐的名称保持严格一致。
  • 定价时要考虑对应计算巢服务套餐的具体配置。
  • 定期审核和更新Saas Boost与计算巢之间的套餐对应关系,以保持数据的最新性和准确性。

遵循这些指导原则,商家可以保证Saas Boost平台上的商品与计算巢中服务和套餐的适当整合和价格一致性。

快速创建服务

如果您还没有为您即将售卖的软件创建计算巢服务。请基于以下文档快速创建计算巢服务。

  1. 登录到计算巢控制台,选择新建服务

img.png 2. 仿照下图配置,选择托管版服务和Spring Boot服务。

img.png 3. 填写配置参数

img.png 4. 点击"创建服务",等待服务创建成功。 5. 后续当您想对您软件部署物进行修改时,可对该服务进行编辑,重新选择部署物。

img.png

在参数管理中修改配置参数

为了更好的售卖您的商品,您需要提前配置好个人信息管理与支付信息管理。个人信息包括服务商名称、官方链接、Logo链接和服务商简介,这些信息有助于您更好地 向用户展示您的相关情况。支付信息管理中未来会支持多种支付手段,但当前仅支持用支付宝完成收款。支付宝中您需要配置的参数包括应用ID、商户ID、官方公钥、 服务商私钥以及支付环境等五项信息。本节将详细介绍个人信息与支付信息中的参数需要填写的内容与需要遵循的规则。

修改服务商个人信息

个人信息中的Logo链接支持本地路径与http url两种方式。其他信息您可以按照您的需求进行填写。

下面是分别使用本地路径与http url的两个服务商个人信息填写示例:

示例一(本地路径): providerInfo-1.png

示例二(http url): providerInfo-2.png

配置支付宝

准备阶段

在配置支付宝参数前,您需要确保您的应用已经在支付宝开放平台接入。若需注册您的应用,请访问支付宝开发者控制台。 若在注册过程中遇到困难,请参考支付宝开放平台的技术接入指南

配置项介绍

支付宝的配置项包括应用ID、商户ID、官方公钥、 服务商私钥以及支付环境。其中,应用ID、商户ID和支付环境为普通参数,官方公钥、 服务商私钥为加密参数, saas boost利用阿里云中的oos产品保障您私密信息的信息安全。

应用ID是支付宝为每个接入其支付服务的应用或网站分配的一个唯一标识符。它用来识别具体的商户应用,确保请求来源于已授权的商家。在发起支付请求时,必须包 含此ID,以便支付宝平台能够识别并路由到正确的商户账户。

商户ID是支付宝为商户分配的一个唯一编号,用于标识商户的身份。它与应用ID相辅相成,共同确定交易的收款方。商户ID在处理支付、退款等业务逻辑时是必不可少 的,确保资金流向正确的商户账户。

官方公钥是指支付宝提供的公钥,用于验证支付宝发给商户的消息或通知的真实性。在加密通信中,商户会使用支付宝的公钥对支付宝发送过来的数据进行解密,或者验 证支付宝签名,以此确认消息未被篡改,保证了交易的安全性。

服务商私钥是指支付宝与商户约定的私钥,是RSA非对称加密体系中的一部分,与支付宝提供的公钥配对使用。商户在发起支付请求前,会使用自己的私钥对交易信息进 行签名,支付宝收到请求后,利用公钥验证签名,以此确保请求的来源是可信的。这个过程对于防止数据被篡改和保证交易的完整性至关重要。

支付环境包括沙盒环境和正式环境。沙盒环境是一个模拟的真实支付环境,供开发者在不涉及真实资金交易的情况下测试支付功能。在沙盒环境中,可以安全地调试代 码、测试支付流程,确保一切正常无误后再切换到正式环境。一旦应用的支付功能在沙盒环境中测试无误,就可以将其部署到正式环境中。正式环境直接关联实际的财务 交易,用户在这里进行的支付操作将涉及真实的货币流动。

获取方法介绍
  1. 应用ID在您的应用注册成功后,在支付宝开放平台->控制台标签页的左上角查看。如下图红框中所示。 alipay-appId.png

  2. 商户ID在支付宝开放平台->右上角头像->账户中心->账号管理->账户信息->账号ID中查看。如下图红框所示。 alipay-userId-1.png alipay-userId-2.png

  3. 官方公钥与服务商私钥获取方式请参考支付宝开放平台的查看密钥/证书文档。

  4. 支付环境请您根据自身情况设置,在沙盒环境中安全地调试代码、测试支付流程,确保一切正常无误后再切换到正式环境。

定时任务访问

SaaS Boost的定时任务包括超时订单关闭,订单的退款处理,已完成的订单的状态修改等 如果为ECS部署,则参照下图访问 img.png 如果为ACK部署方式,则请访问ACK的Job查看

常见错误及解决

  1. 流水线运行错误。 流水线包含npm build,Java build。在build完后,Fc的jar包会上传到OSS仓库。Server的jar包会上传到计算巢制品仓库。上传之后会进行实际的部署,其中FC的部署 为直接替换OSS中zip包的方式,Server的部署为执行当前项目下的deploy.sh脚本。在熟悉了整体流水线的运行步骤后,通过结合流水线给出的错误日志,即可定位到常见的开发问题。 如果觉得在云端难以解决,可将错误环境克隆到本地。 示例如下: Image

  2. 服务实例部署失败 该类情况多见于创建服务实例的用户的权限不够,或是选择部署的Ecs实例在当前可用区售罄了。 更详细的信息可在服务实例详情部署日志处查看。

© 2009-2022 Aliyun.com 版权所有