使用SAE部署应用并通过公网访问应用

更新时间: 2023-10-16 16:00:35

sae

手动配置

50

教程简介

通过本教程,您将学习如何使用Serverless应用引擎SAE(Serverless App Engine)部署应用并通过公网访问应用。

Serverless应用引擎SAE(Serverless App Engine)是一款极简易用、自适应弹性的应用托管平台,它提供全托管的计算服务来运行用户的程序,适用于网站、小程序、APP以及微服务应用等,用户不必再关心复杂的基础设施,只需要上传代码或者容器镜像,SAE会自动运行,并提供网络、负载均衡、监控等配套能力。

我能学到什么

您可以任选以下应用类型,完成部署应用的完整体验。

  • 微服务应用:提供服务注册发现和服务治理的能力,例如使用SpringCloud、Dubbo、Motan、Mesh以及K8s Service框架来开发和通信的应用。

    • 学会使用SAE部署微服务,为应用绑定SLB并通过公网访问应用。

    • (进阶)学会通过压测工具评估应用容量峰值范围,并为应用配置弹性策略。

  • Web应用:提供HTTP服务的应用,例如SpringBoot、多语言网站类应用。

    • 学会通过源码部署的方式创建应用并通过公网访问应用。

操作难度

所需时间

45分钟

使用的阿里云产品

所需费用

SAE、SLB和PTS资源在试用额度内免费。更多信息,请参见SAE计费概述SLB计费概述ACR计费概述PTS计费概述

准备环境和资源

10

开始教程前,请按以下步骤准备环境和资源:

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

  2. 成功登录后,在产品类别下选择计算 > 应用列表Serverless 应用引擎 SAE,在Serverless 应用引擎 SAE卡片上单击立即试用

  3. Serverless 应用引擎 SAE面板,确认开通产品、CPU资源包与内存资源包等信息后,选中服务协议右侧的复选框,然后单击立即试用完成试用申请。

    image.png
  4. 页面跳转至SAE控制台,按照页面提示操作。

    • 如果SAE控制台显示领取套餐并开通按量付费的服务未开通提示,您无需任何操作,仅需等待一段时间(约7秒)即可直接使用SAE的相关功能。

    • 如果您未创建SLR,登录SAE控制台时会弹出欢迎使用Serverless应用引擎SAE对话框,单击确认创建即可完成SLR的创建。

    说明

    如果您是新用户,并且在试用中心已领取SAE资源包,资源包会自动抵扣。因此,使用SAE试用教程期间,您无需关注开通按量付费后以及创建应用时的配置费用。关于免费额度的更多信息,请参考试用教程的清理及后续页签。

    image.pngimage.png

部署微服务应用

10

  1. 登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击创建应用

    当您首次使用RAM用户登录SAE控制台时,SAE会弹出欢迎使用Serverless应用引擎SAE对话框提示您需要为RAM用户授权,使RAM用户可以访问相应的阿里云资源。更多信息,请参见为RAM用户授权

  2. 应用基本信息配置向导,配置相关信息,然后单击下一步:应用部署配置

    配置项

    说明

    示例

    应用名称

    输入自定义的应用名称。

    frontend

    专有网络配置

    选择专有网络的配置方式。

    • 自定义配置:选中后,可以为创建的应用选择所需的命名空间、VPC、vSwitch及安全组。

    • 自动配置:选中后,SAE将自动配置命名空间、VPC、vSwitch及安全组,无需手动选择。

    自动配置

    应用实例数

    选择需要创建的实例个数。

    1

    VCPU

    选择需要创建的实例CPU规格。

    4Core

    内存

    选择需要创建的实例内存规格。

    8GiB

    说明

    本教程是为了模拟实际生产场景而选择较大的资源规格,如果是您自己使用,可以根据应用来自由选择对应的规格。

    image..png
  3. 应用部署配置配置向导,配置相关信息,然后单击下一步:确认规格

    本步骤仅介绍关键配置项,其余配置信息保持默认即可。

    配置项

    说明

    示例

    技术栈语言

    选择应用对应的技术栈语言。

    Java

    应用部署方式

    选择应用的部署方式。

    JAR包部署

    应用运行环境

    • 标准Java应用运行环境:适用于Spring Boot与Dubbo应用。

    • EDAS-Container-XXX:适用于HSF应用。

    标准Java应用运行环境

    Java环境

    • Dragonwell X(推荐):支持OpenJDK,支持应用启动及运行时加速,提升GC效率等。

    • Open JDK X:基于CentOS操作系统,基础镜像大。

    • openjdk-XXXXX-jdk-alpine3.9:基于Alpine操作系统,基础镜像小。

    Open JDK 8

    文件上传方式

    选择文件上传方式。

    • 上传JAR包:单击选择文件,选择待部署的JAR文件。

    • JAR包地址:输入JAR文件的存放地址。

    JAR包地址

    JAR包地址

    文件上传方式选择JAR包地址时,需要输入JAR文件的存放地址。应用部署程序包名称仅可包含字母、数字、短划线(-)和下划线(_)。

    https://labfileapp.oss-cn-hangzhou.aliyuncs.com/SAE/frontend-1.0.1-SNAPSHOT.jar

    版本

    设置应用版本号,选择输入版本号或者单击使用时间戳为版本号将时间戳作为应用版本号。

    1685516276089

    时区设置

    选择当前应用所在时区。

    UTC+8

    options设置

    展开启动命令设置区域,在options设置栏输入所需命令。

    -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0
    image..png
  4. 确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建

    无需等待应用创建完毕,直接执行下一步,部署新应用。

  5. 返回应用列表页面,重复步骤1~4,创建其余两个应用cartservice、productservice。

    本步骤仅介绍应用的不同配置项,其余配置信息与frontend应用保持一致即可。部署完成后,当应用列表页面显示已创建的3个应用,表示应用部署成功。

    配置项

    示例

    JAR包地址

    • cartservice

      https://labfileapp.oss-cn-hangzhou.aliyuncs.com/SAE/cartservice-provider-1.0.1-SNAPSHOT.jar
    • productservice

      https://labfileapp.oss-cn-hangzhou.aliyuncs.com/SAE/productservice-provider-1.0.1-SNAPSHOT.jar
    image..pngimage..png
  6. 应用列表页面,单击frontend,在默认显示的基本信息页签,找到应用访问设置区域,然后在基于SLB访问页签,单击添加公网SLB访问

    负载均衡SLB有多种类型,其中添加公网SLB访问功能绑定的SLB,为传统型负载均衡CLB。

    image..png
  7. 添加公网SLB访问对话框,请选择SLB默认选择新建,在HTTP协议页签的HTTP端口输入80容器端口输入9999,然后单击确认

    如果公网访问地址栏显示公网地址,表示应用成功绑定SLB。

    image..pngimage..png

部署Web应用

10

SAE源码部署功能适用于SAE 2.0,提供了直接从用户源码到应用上线的能力,在接受用户触发的构建事件后,根据用户提供的源代码,自动检测构建所需的环境,自动化完成代码构建到部署的完整流程(配置运行时环境、安装依赖管理工具、安装第三方依赖、打包镜像、推送到个人仓库)。

重要

在进阶教程中,使用ACR会产生一定的费用。更多信息,请参见ACR计费概述

  1. 登录SAE 2.0控制台,在应用列表页面,单击创建应用

    image.png
  2. 创建应用页面的在基础信息设置区域,输入自定义的应用名称应用描述应用部署方式选择从源码仓库持续部署,然后单击设置持续部署,在设置持续部署面板,配置相关信息,然后单击确定

    分类

    配置项

    说明

    示例

    源代码库

    代码仓库类型

    支持多种代码托管平台作为代码源,本步骤以Gitee平台提供的SAE公共代码仓库为例。

    Gitee

    仓库用户

    SAE公共代码仓库

    仓库名称

    sae-pe/Demo_CannonMan

    仓库分支

    master

    构建配置

    构建类型

    当前支持Ubuntu 22.04作为基础环境。支持的语言包括Go、Python、Node.js、Java、PHP和静态页面应用。默认值为系统自动检测并构建镜像

    系统自动检测并构建镜像

    构建触发模式

    每次新提交代码到指定分支时,系统都会自动部署应用的新版本。

    自动触发构建

    自定义目标镜像仓库

    管理用户的源代码仓库,当代码提交后按照您设置的构建规则构建镜像,并推送到镜像仓库。本步骤以容器镜像ACR个人版实例为例。

    • 如果选择自动创建,SAE会自动帮您创建命名空间和镜像仓库。

    • 如果选择已创建的配置,需要选择与SAE应用相同地域下的命名空间和镜像仓库。

    自动创建

    镜像构建的工作目录

    指定构建时的根目录,一般情况下使用默认的代码仓库根目录即可。

    ./

    启动命令

    启动服务时的启动命令。

    image.pngimage.png
  3. HTTP流量全托管区域,配置相关信息。

    配置项

    说明

    示例

    入口流量类型

    应用创建完成后,系统会免费提供一个默认的公网地址提供访问,您可以在更新应用时,将默认公网地址修改为自定义域名。

    • 全部(公网和私网):默认值。允许直接从公网和内部VPC内访问应用。

    • 内网:仅允许从内部VPC内访问应用。

    全部(公网和私网)

    调用鉴权认证

    • 无需认证:默认值。

    • 签名认证:需要对HTTP请求进行签名认证。

    无需认证

    HTTP监听端口

    输入应用监听端口。取值范围为[1,65535]。

    8080

    请求超时时间

    取值范围为[1,3600],单位为秒。默认值为10秒。

    10

    image.png
  4. 容量设置区域,配置相关信息,然后单击跳过高级设置,创建应用

    本步骤以简化的创建应用流程为例。应用基本信息配置完成后,您也可以单击下一步:高级设置,继续为应用配置启动命令、环境变量、应用健康检查、日志等功能。

    配置项

    说明

    示例

    单实例规格

    建议在测试环境中使用0.5 Core 1 GB,在生产环境中依据实际情况选择更高的实例规格。

    CPU 1 核 内存 2 GB

    CPU分配策略

    选择CPU的分配策略。

    • 仅在请求处理期间才分配CPU:适用于有零星、突发、峰值流量的业务。

    • 始终分配固定CPU:适用于稳定流量的业务或者一些后台任务、异步处理工作等。

    仅在请求处理期间才分配CPU

    单实例并发请求数

    单个实例同时可以处理的请求数上限。取值范围为[1,200],默认值为10次。

    10

    自动扩缩实例数范围(个)

    自动弹性功能可以实现在瞬时流量波峰到来时应用自动扩容,波峰结束后自动缩容,保障应用平稳运行。取值范围为[1,50]。默认值为2~10。

    2~10

    应用创建完成后,会跳转至基础信息页面。在此页面,您可以查看计量数据、应用弹性监控、应用信息,以及编辑流量访问设置等信息。

    image.png

完成

2

请根据部署应用的类型,选择不同方式访问应用。

部署微服务应用

在任意一台终端的浏览器地址栏中,输入公网地址(例如本示例中的XX.XX.76.150:80)并回车,即可访问已部署的商城。至此,您已完成SAE部署微服务应用的全部体验。

  • 如果您有兴趣继续体验,可以暂时保留资源,参考微服务应用弹性能力体验页签,进一步体验SAE在弹性伸缩方面的能力。

  • 如果您不继续体验,请参考试用教程的清理及后续页签,删除资源。

image..png

部署Web应用

基础信息页面的HTTP流量全托管区域,单击公网访问地址,跳转至Demo应用的首页。至此,您已完成SAE部署Web应用的全部体验。

首次访问,SAE会自动添加您的公网IP地址到白名单中。如果后续访问失败,请更新IP白名单。

image.pngimage.png

(进阶)微服务应用弹性能力体验(进阶)

10

如果您有兴趣继续体验,可以暂时不删除资源,参考进阶教程,进一步体验SAE在弹性伸缩方面的能力。如果您不继续体验,请参考试用教程的清理及后续页签,删除资源。

重要

在进阶教程中,使用PTS会产生一定的费用。更多信息,请参见PTS计费概述

  1. 登录PTS控制台,在左侧导航栏,选择性能测试 > 创建场景,然后在创建场景页面,单击PTS压测卡片。

    如果您未开通PTS,页面会提示开通,按照提示开通即可。

    image..png
  2. 创建PTS场景页面的场景配置页签,配置相关信息,然后单击施压配置页签。

    配置项

    说明

    示例

    场景名

    自定义。

    sae

    请输入压测API名称

    自定义。

    buy

    压测URL

    单击GET,在基本请求信息页签,输入商城应用的购买商品接口。其中,<IP地址>为部署应用时绑定的公网SLB地址。

    http://<IP地址>/product/buy/20/200
    image..png
  3. 施压配置页签,配置相关信息,然后单击保存去压测

    分类

    配置项

    说明

    示例

    压测模式配置

    递增模式

    在压测过程中通过手动调速后自动递增模式会自动失效,手动模式需要在起始和最高之间手动增减。

    自动递增

    最大并发

    全场景可达到的最大并发量,各串联链路按照权重分配并发量。

    20

    递增百分比

    递增并发量级。

    50

    单量级持续时长

    为保证能在单量级持续过程中发现业务问题,单量级持续时长至少设置1分钟。

    1

    压测总时长

    自动递增时,总时长≥单量级持续时长/递增量级×1.1(向上取整),但不可超过24小时。

    3

    量级及数据配置

    最大并发权重

    压测模式设置完毕,需设置压测起始量级与最大量级。

    100

    起始百分比

    20

    image..png
  4. 温馨提示对话框,单击确定,启动压测,等待PTS压测任务生成并执行,然后查看压测结果。

    image..pngimage..png

  5. 报告列表页面,找到目标报告,在其操作列,单击查看报告

    在未开启弹性策略的情况下,面对大流量,您可以观察到服务已经出现失败的情况。

    image..pngimage..png
  6. 登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击productservice应用。

    为应用配置弹性策略后,再尝试压测并查看结果。

    image..png
  7. 基本信息页面,单击右上角的自动扩缩,进入添加弹性策略面板。按照页面提示完成配置后,单击确认,然后在实例部署信息页签的弹性伸缩区域,单击目标策略操作列的启用

    配置项

    说明

    示例

    策略类型

    支持配置定时、监控指标以及混合弹性策略。

    监控指标策略

    策略名称

    自定义。

    sae

    CPU使用率

    单个实例的平均CPU使用率。

    70

    Mem使用率

    单个实例的平均内存使用率 。无需配置。单击操作列的删除图标。

    应用最小实例数

    触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。

    1

    image..png
  8. 返回PTS控制台,在左侧导航栏,选择性能测试 > 场景列表,在场景列表页面,找到目标场景,在其操作列,单击启动

    等待压测完成后,查看报告,您可以观察到在开启弹性策略后,同样的流量下,请求成功率达到100%。

    image..pngimage..png
  9. 返回SAE控制台,在productservice应用基本信息页面的实例部署信息页签,查看实例信息。

    您可以观察到SAE自动拉起2个实例,此时一共有3个实例。等待几分钟后,因流量洪峰消失,SAE会自动释放拉起的实例,最终只剩下1个运行中的实例。

    image..pngimage..png
  10. 至此,您已完成SAE弹性能力的体验。请参考试用教程的清理及后续页签,删除资源。

清理及后续

3

清理

Serverless应用引擎SAE提供CPU 48000核*分钟(即800核*时)、内存96000 GiB*分钟(即1600GiB*时),有效期3个月的免费试用额度。超出有效期和试用额度的部分均会计入按量付费。更多关于试用额度的信息,请参见试用额度。完成教程后,请参考以下场景处理SAE的资源:

  • 如果无需使用SAE,请根据部署应用的类型,删除资源。

    • 微服务应用:登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,在应用列表页面,找到目标应用,单击右侧操作列的删除,根据界面提示删除资源。

    • Web应用:登录SAE 2.0控制台,在应用列表页面,单击目标应用进入详情页,在基础信息页面的右上角,根据页面提示删除资源。

  • 如果需要继续使用SAE,请注意用量,确保账户不要欠费。

后续

SLB产品属于额外计费项,不属于SAE计费项。假设SAE解绑或修改已绑定的SLB实例,此时SLB实例依旧在运行中,因此,SLB产品仍处于计费状态。如果无需继续使用SLB产品,释放SLB实例后才会停止计费。完成教程后,请参考以下场景清理对应资源:

  • 如果无需继续使用SLB,请登录负载均衡控制台,根据界面提示删除资源。

  • 如果需要继续使用SLB,请注意用量,确保账户不要欠费。

总结

常用知识点

问题1:本教程中,为SAE应用绑定的SLB,属于什么类型的负载均衡?(单选题)

  • 应用型负载均衡ALB(Application Load Balancer)

  • 传统型负载均衡CLB(Classic Load Balancer)

  • 网络型负载均衡NLB(Network Load Balancer)

正确答案是传统型负载均衡CLB。

问题2:如果应用已配置并启用了弹性策略,部署该应用后,弹性策略是否会失效?(单选题)

  • 会。

  • 不会。

正确答案是会。进行部署应用等变更单操作时,SAE会停止当前应用的弹性配置,避免两种操作冲突。

延伸阅读

阿里云首页 相关技术圈