Serverless 应用引擎 SAE(Serverless App Engine)向上抽象了应用的概念,支持以代码包和镜像方式部署应用并进行托管。在SAE上,您可以低门槛拥抱容器技术,无需管理和维护集群与服务器,专注于设计和构建应用程序,最大化利用资源完成应用的生命周期管理,以及监控、运维等服务。本文介绍SAE支持的应用类型、部署方式和托管功能。
应用部署方式
当应用部署到SAE后,SAE的应用托管能力可以使其更可用、运维更轻量。具体教程,请参考如下视频。
SAE支持部署的主流应用及部署方式,请参考下表。
应用举例 | 部署方式 | 参考文档 |
原生Spring Cloud | WAR、JAR、镜像 | |
原生Dubbo | WAR、JAR、镜像 | |
HSF | WAR、JAR、镜像 | |
多语言应用 | 镜像 | |
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绑定、健康检查、日志收集和持久存储等,您可以在创建应用时设置,也可以在创建应用后(后续部署应用时)依据业务需求设置。如果您选择在应用创建后设置,应用将会重启生效该配置。为避免业务中断等不可预知的错误,请在业务低峰期进行高级设置。
应用托管功能
将应用托管到SAE后,您可以对应用进行一键式白屏化的全生命周期管理,简化运维。
使用场景 | 功能 |
资源管理 | 通过命名空间从逻辑上隔离应用,并使用配置项存储应用所需的配置信息。更多信息,请参见命名空间管理。 |
应用部署 |
|
应用设置 | 应用部署到SAE后,您可以按需修改应用运行所需的实例规格、切换安全组和vSwitch等。更多信息,请参见应用设置。 |
应用访问 | 应用部署到SAE后,其业务通常需要获取公网资源或者跨VPC访问,您可以通过绑定CLB、配置NAT网关+EIP或应用实例绑定EIP等方式实现。更多信息,请参见应用访问。 |
应用运维 | SAE支持通过Webshell完成基本的运维需求,例如通过日志上传下载诊断应用。在实例无法启动时,SAE支持通过一键调试功能定位问题。更多信息,请参见应用运维。 |
一键启停 | SAE支持在同一命名空间内,一键启停开发、测试和预发等环境的应用。更多信息,请参见一键启停。 |
弹性伸缩 | 应用扩缩是通过改变应用的实例数来增加或减少应用的计算容量。您可以在应用的实例负载过高时,以手动方式添加新应用实例,在应用闲置时减少应用实例,高效利用应用资源并降低成本。 |
日志管理 | 在应用的运维过程中,您可以通过日志定位并诊断问题。更多信息,请参见日志管理。 |
监控与报警 | SAE集成了应用实时监控服务ARMS,为部署在SAE中的应用提供关键指标的监控能力和报警能力。更多信息,请参见监控和应用监控报警。 |
分布式配置管理 | SAE支持对应用配置进行集中管理,您可以将应用开发过程中产生的大量的参数和变量等信息,提取到配置文件中并上传至SAE。更多信息,请参见配置管理概述。 |
事件订阅 | 事件中心可以记录实例的状态变更,统一管理SAE生成的事件数据,提供存储、查询和告警等功能。更多信息,请参见事件订阅。 |