应用托管概述

Serverless 应用引擎 SAE(Serverless App Engine)向上抽象了应用的概念,支持以代码包和镜像方式部署应用并进行托管。在SAE上,您可以低门槛拥抱容器技术,无需管理和维护集群与服务器,专注于设计和构建应用程序,最大化利用资源完成应用的生命周期管理,以及监控、运维等服务。本文介绍SAE支持的应用类型、部署方式和托管功能。

应用部署方式

当应用部署到SAE后,SAE的应用托管能力可以使其更可用、运维更轻量。具体教程,请参考如下视频。

SAE支持部署的主流应用及部署方式,请参考下表。

应用举例

部署方式

参考文档

原生Spring Cloud

WAR、JAR、镜像

将Spring Cloud应用托管到SAE

原生Dubbo

WAR、JAR、镜像

将Dubbo应用托管到SAE

HSF

WAR、JAR、镜像

将HSF应用托管到SAE

多语言应用

镜像

在SAE控制台使用镜像部署多语言应用

PHP应用

镜像、ZIP

Python应用

镜像、ZIP

  • 从服务框架角度而言,使用Spring Cloud、Dubbo和HSF框架开发的应用都可以部署在SAE中,但因部署方式不同,其应用的运行环境也不同。

    • Spring Cloud和Dubbo应用通过WAR包部署时,选择apache-tomcat相关版本的运行环境。

    • Spring Cloud和Dubbo应用通过JAR包部署时,选择标准Java应用运行环境

    • HSF应用通过WAR或JAR包部署时,选择EDAS-Container相关版本的运行环境。

  • 从技术栈语言角度而言,SAE支持托管Java应用、PHP应用、Python应用以及多语言(例如Node.js和Go)应用。

  • 从工具角度而言,除控制台部署和API部署外,SAE与很多CI/CD工具、插件集成,CI/CD工具包括Jenkins、Terraform和云效,插件包括Maven、IntelliJ IDEA和Eclipse,可以实现代码提交后自动部署。

重要

如果您是第一次将应用部署到SAE,需要在SAE控制台创建应用,以便将业务代码推送到该应用中。

应用部署高级设置

应用的高级设置功能包括启动命令、环境变量、Host绑定、健康检查、日志收集和持久存储等,您可以在创建应用时设置,也可以在创建应用后(后续部署应用时)依据业务需求设置。如果您选择在应用创建后设置,应用将会重启生效该配置。为避免业务中断等不可预知的错误,请在业务低峰期进行高级设置。

Java

高级设置

参考文档

镜像加速

设置镜像加速

说明

只有应用部署方式镜像时才能设置镜像加速。

启动命令设置

设置启动命令

Java Tomcat设置

设置Java Tomcat参数

说明

只有应用部署方式WAR包部署时才能设置Tomcat。

环境变量设置

设置环境变量

服务注册发现

Hosts绑定设置

设置Hosts绑定

应用健康检查设置

设置健康检查

应用出/入公网访问设置

应用生命周期管理设置

设置应用生命周期管理

日志收集服务

持久化存储

设置NAS存储

配置管理

注入配置信息

微服务无损上下线

说明

当您选择WAR包部署JAR包部署时,如果应用运行环境选择EDAS-Container-XXX,不支持配置微服务无损上下线。

PHP

高级设置

参考文档

镜像加速

设置镜像加速

说明

只有应用部署方式镜像时才能设置镜像加速。

PHP应用监控设置

  • 镜像方式部署:设置PHP应用监控

  • ZIP包方式部署:无。挂载目录文本框置灰,您无法更改ARMS监控目录,但可以选择是否打开免费开通应用监控基础版功能开关。

php.ini配置文件修改

设置PHP应用配置文件

启动命令设置

设置启动命令

环境变量设置

设置环境变量

服务注册发现

Hosts绑定设置

设置Hosts绑定

应用健康检查设置

设置健康检查

应用出/入公网访问设置

应用生命周期管理设置

设置应用生命周期管理

日志收集服务

持久化存储

设置NAS存储

配置管理

注入配置信息

Python

高级设置

参考文档

镜像加速

设置镜像加速

说明

只有应用部署方式镜像时才能设置镜像加速。

启动命令设置

设置启动命令

环境变量设置

设置环境变量

应用监控

启停应用监控

服务注册发现

Hosts绑定设置

设置Hosts绑定

应用健康检查设置

设置健康检查

应用生命周期管理设置

设置应用生命周期管理

应用出/入公网访问设置

日志收集服务

持久化存储

设置NAS存储

配置管理

注入配置信息

多语言(例如Node.js和Go)

应用托管功能

将应用托管到SAE后,您可以对应用进行一键式白屏化的全生命周期管理,简化运维。

使用场景

功能

资源管理

通过命名空间从逻辑上隔离应用,并使用配置项存储应用所需的配置信息。更多信息,请参见命名空间管理

应用部署

  • 创建和部署:完成应用开发后,您可以通过SAE创建并部署应用,并按需为应用设置高级配置。更多信息,请参见创建应用

  • 插件部署:SAE支持通过Maven、IntelliJ IDEA和Eclipse插件进行部署。更多信息,请参见插件部署

  • CI/CD:应用在迭代升级过程中,需要持续集成(CI)与持续部署(CD)。SAE支持通过云效、Jenkins和Terraform等方式实现CI/CD部署。更多信息,请参见CICD部署Terraform概述

  • 升级和回滚:应用完成创建后,还需不断迭代升级;若升级的版本出现问题,则需要回退版本。更多信息,请参见升级和回滚应用

应用设置

应用部署到SAE后,您可以按需修改应用运行所需的实例规格、切换安全组和vSwitch等。更多信息,请参见应用设置

应用访问

应用部署到SAE后,其业务通常需要获取公网资源或者跨VPC访问,您可以通过绑定CLB、配置NAT网关+EIP或应用实例绑定EIP等方式实现。更多信息,请参见应用访问

应用运维

SAE支持通过Webshell完成基本的运维需求,例如通过日志上传下载诊断应用。在实例无法启动时,SAE支持通过一键调试功能定位问题。更多信息,请参见应用运维

一键启停

SAE支持在同一命名空间内,一键启停开发、测试和预发等环境的应用。更多信息,请参见一键启停

弹性伸缩

应用扩缩是通过改变应用的实例数来增加或减少应用的计算容量。您可以在应用的实例负载过高时,以手动方式添加新应用实例,在应用闲置时减少应用实例,高效利用应用资源并降低成本。

  • 自动弹性:当应用扩缩容为非紧急需求时,例如周期性的流量高峰,您可以选择自动扩缩方式。更多信息,请参见配置弹性伸缩策略

  • 手动弹性:当应用扩缩容为紧急需求时,例如突发性的流量高峰,您可以选择手动扩缩方式。更多信息,请参见手动扩缩

日志管理

在应用的运维过程中,您可以通过日志定位并诊断问题。更多信息,请参见日志管理

监控与报警

SAE集成了应用实时监控服务ARMS,为部署在SAE中的应用提供关键指标的监控能力和报警能力。更多信息,请参见监控应用监控报警

分布式配置管理

SAE支持对应用配置进行集中管理,您可以将应用开发过程中产生的大量的参数和变量等信息,提取到配置文件中并上传至SAE。更多信息,请参见配置管理概述

事件订阅

事件中心可以记录实例的状态变更,统一管理SAE生成的事件数据,提供存储、查询和告警等功能。更多信息,请参见事件订阅