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

应用部署方式

应用举例 部署方式 参考文档
原生Spring Cloud WAR、JAR、镜像 将Spring Cloud应用托管到SAE
原生Dubbo WAR、JAR、镜像 将Dubbo应用托管到SAE
HSF WAR、JAR、镜像 将HSF应用托管到SAE
多语言应用 镜像 在SAE控制台使用镜像部署多语言应用
PHP应用 镜像、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应用以及多语言(例如Node.js、Go和Python等多种语言)应用。

从工具角度而言,除控制台部署和API部署外,SAE与很多CI/CD工具集成,例如云效、Jenkins和Terraform,可以实现代码提交后自动部署。

控制台部署

SAE支持以Java WAR和JAR、PHP ZIP源码包以及Docker镜像的方式部署应用。如果您是第一次将应用部署到SAE,需要在SAE控制台创建应用,以便将业务代码推送到该应用中。

插件部署

除通过控制台方式进行应用部署,SAE还支持通过Maven、IntelliJ IDEA和Eclipse插件进行部署应用。

Maven插件自动化部署应用至SAE

支持通过toolkit-maven-plugin插件将应用自动化部署至SAE。

IntelliJ IDEA插件快速部署应用至SAE

支持通过Alibaba Cloud Toolkit for IntelliJ IDEA插件将应用自动化部署至SAE。

Eclipse插件一键部署应用至SAE

支持通过Alibaba Cloud Toolkit for Eclipse插件将应用自动化部署至SAE。

CI/CD部署

应用在迭代升级过程中,需要持续集成(CI)与持续部署(CD)。SAE支持通过云效、Jenkins和Terraform实现CI/CD部署。

使用云效2020部署应用至SAE

支持不同语言通过云效2020实现应用的持续集成和部署。

使用Jenkins创建应用的持续集成

支持使用sae-jenkins-plugin插件,在Jenkins内快速完成持续部署应用到SAE。

Terraform

Terraform被各种流行的CI/CD流水线所集成,提升SAE应用交付的自动化程度。

应用部署高级设置

在应用部署时,参照以下内容进行启动命令、环境变量、Host绑定、健康检查、日志收集和持久存储等配置。

说明 应用的高级配置功能,可以在创建应用时设置,也可以在创建应用后(后续部署应用时)依据业务需求设置。如果您选在应用创建后设置,应用将会重启生效该配置,请选择业务较少的时段进行高级设置。
Java
高级设置 参考文档
服务注册发现
启动命令设置 设置启动命令
Java Tomcat设置 设置Java Tomcat参数
说明 只有应用部署方式WAR包部署时才能设置Tomcat。
环境变量设置 设置环境变量
Host绑定设置 设置Hosts绑定
应用健康检查设置 设置健康检查
应用出/入公网访问设置
应用生命周期管理设置 设置应用生命周期管理
日志收集服务
持久化存储 设置NAS存储
配置管理 注入配置信息
微服务无损上下线
说明 当您选择WAR包部署JAR包部署时,如果应用运行环境选择EDAS-Container-XXX,不支持配置微服务无损上下线。
PHP
高级设置 参考文档
服务注册发现
PHP应用监控设置
  • 镜像方式部署:设置PHP应用监控
  • ZIP包方式部署:无。挂载目录文本框置灰,您无法更改ARMS监控目录,但可以选择是否打开免费开通应用监控基础版功能开关。
php.ini配置文件修改 设置PHP应用配置文件
启动命令设置 设置启动命令
环境变量设置 设置环境变量
Hosts绑定设置 设置Hosts绑定
应用健康检查设置 设置健康检查
应用出/入公网访问设置
应用生命周期管理设置 设置应用生命周期管理
日志收集服务
持久化存储 设置NAS存储
配置管理 注入配置信息
多语言
高级设置 参考文档
服务注册发现
启动命令设置 设置启动命令
环境变量设置 设置环境变量
Host绑定设置 设置Hosts绑定
应用健康检查设置 设置健康检查
应用生命周期管理设置 设置应用生命周期管理
应用出/入公网访问设置
日志收集服务
持久化存储 设置NAS存储
配置管理 注入配置信息

应用托管功能

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

使用场景 功能
资源管理 通过命名空间从逻辑上隔离应用,并使用配置项存储应用所需的配置信息。更多信息,请参见管理命名空间管理和使用配置项(K8s)
应用部署
  • 创建和部署:完成应用开发后,您可以通过SAE创建并部署应用,并按需为应用设置高级配置。更多信息,请参见创建应用
  • 插件部署:SAE支持通过Maven、IntelliJ IDEA和Eclipse插件进行部署。更多信息,请参见插件部署
  • CI/CD:应用在迭代升级过程中,需要持续集成(CI)与持续部署(CD)。SAE支持通过云效、Jenkins和Terraform等方式实现CI/CD部署。更多信息,请参见CICD部署
  • 升级和回滚:应用完成创建后,还需不断迭代升级;若升级的版本出现问题,则需要回退版本。更多信息,请参见升级和回滚应用
应用设置 应用部署到SAE后,您可以按需修改应用运行所需的实例规格、切换安全组和vSwitch等。更多信息,请参见应用设置
应用访问 应用部署到SAE后,其业务通常需要获取公网资源或者跨VPC访问,您可以通过绑定SLB、配置NAT网关+EIP或应用实例绑定EIP等方式实现。更多信息,请参见应用访问
应用运维 SAE支持通过Webshell完成基本的运维需求,例如通过日志上传下载诊断应用。在实例无法启动时,SAE支持通过一键调试功能定位问题。更多信息,请参见应用运维
一键启停 SAE支持在同一命名空间内,一键启停开发、测试和预发等环境的应用。更多信息,请参见一键启停应用
弹性伸缩 应用扩缩是通过改变应用的实例数来增加或减少应用的计算容量。您可以在应用的实例负载过高时,以手动方式添加新应用实例,在应用闲置时减少应用实例,高效利用应用资源并降低成本。
  • 自动弹性:当应用扩缩容为非紧急需求时,例如周期性的流量高峰,您可以选择自动扩缩方式。更多信息,请参见配置弹性伸缩策略
  • 手动弹性:当应用扩缩容为紧急需求时,例如突发性的流量高峰,您可以选择手动扩缩方式。更多信息,请参见手动扩缩
日志管理 在应用的运维过程中,您可以通过日志定位并诊断问题。更多信息,请参见查看实时日志查看文件日志
监控与报警 SAE集成了应用实时监控服务ARMS,为部署在SAE中的应用提供关键指标的监控能力和报警能力。更多信息,请参见监控与报警
分布式配置管理 SAE支持对应用配置进行集中管理,您可以将应用开发过程中产生的大量的参数和变量等信息,提取到配置文件中并上传至SAE。更多信息,请参见配置管理概述
事件订阅 事件中心可以记录实例的状态变更,统一管理SAE生成的事件数据,提供存储、查询和告警等功能。更多信息,请参见事件订阅