SAE是面向应用的Serverless PaaS平台,向上抽象了应用的概念,您可以无需管理和维护集群与服务器,只需专注于设计和构建应用程序,将其部署在SAE。您可以通过SAE控制台部署应用,也可以通过toolkit-maven-plugin、Alibaba Cloud Toolkit for IntelliJ IDEA和Alibaba Cloud Toolkit for Eclipse等插件将应用部署在SAE上。

部署方式

如果应用升级,建议使用灰度发布或分批发布

应用的部署方式参见如下表格。

应用举例 部署方式 参考开发文档
原生Spring Cloud WAR、JAR、镜像 将 Spring Cloud 应用托管到 SAE
原生Dubbo WAR、JAR、镜像 将 Dubbo 应用托管到 SAE
HSF WAR、JAR、镜像 /
多语言应用 镜像 /

使用Spring Cloud、Dubbo 和HSF框架来开发的应用都可以部署在SAE中,但部署方式不同其应用的运行环境也不同。

  • Spring Cloud和Dubbo应用通过WAR包部署时,选择apache-tomcat相关版本的运行环境。
  • Spring Cloud和Dubbo应用通过JAR包部署时,选择标准Java应用运行环境
  • HSF应用通过WAR或JAR包部署时,选择EDAS-Container相关版本的运行环境。

服务注册中心说明

将微服务应用托管到SAE,无需关注服务注册、发现和配置管理,SAE自带服务注册中心和配置管理,即SAE 注册中心,您只需关注应用自身的逻辑。

您在SAE部署应用时,SAE服务注册中心以高优先级自动设置Nacos Server服务端地址和服务端口,以及namespace、access-key、secret-key、context-path等信息,无需进行任何额外的配置。

SAE服务注册中心,与Nacos、Eureka和Consul相比,具有以下优势:
  • 共享组件,节省了您部署、运维Nacos、Eureka或Consul的成本。
  • 对服务注册和发现的调用进行了链路加密,保护您的服务安全性,无需担心服务被未授权的应用发现。
  • SAE服务注册中心与SAE其他组件紧密结合,提供了完整的微服务解决方案,包括环境隔离、平滑上下线、灰度发布等。

如果您坚持使用自建Nacos为服务注册中心,请参见如何搭建 Nacos 为服务注册中心(不推荐)进行搭建。

说明
  • 使用自建Nacos时请确保SAE的网络与自建Nacos的网络互通。
  • 使用自建Nacos为服务注册中心,在部署应用时建议使用镜像方式或者JAR包方式,并配置启动参数-Dnacos.use.endpoint.parsing.rule=false-Dnacos.use.cloud.namespace.parsing=false
    • 如采用镜像方式,请将-Dnacos.use.endpoint.parsing.rule=false-Dnacos.use.cloud.namespace.parsing=false配置在镜像文件中。
    • 如果JAR包方式,请在部署时启动命令中设置。SAE自建Nacos部署应用之启动命令

如果您不熟悉如何制作Docker镜像,具体操作请参见制作应用容器Docker镜像

控制台部署

使用控制台部署应用SAE。建议使用Chrome浏览器进行控制台操作。

在SAE部署Java Web应用

以含有欢迎使用SAE页面的Java Web应用为例,介绍如何在SAE上进行应用创建,并进行WAR包部署 。

部署微服务应用到SAE

以Provider和Comsumer两 JAR包格式的微服务应用为例,介绍如何在SAE上创建微服务应用,并完成部署,实现微服务的注册与发现。

使用镜像部署SAE应用

如果您熟悉Docker镜像,可以将自制的应用镜像上传至阿里巴巴镜像库,在SAE上使用镜像方式创建、部署您的应用。

灰度发布或分批发布

您如果需要对多个应用进行升级, SAE的灰度发布或者分批发布功能,在保证整体系统稳定的情况下助力您完成升级。

工具部署

除通过控制台方式进行应用部署,还可通过以下工具进行部署。

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

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

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

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

Eclips插件一键部署应用至SAE

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

应用部署高级设置

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

说明 以上应用的高级配置功能,您可以在创建、部署应用时设置,也可以在部署应用后依据实际情况进行设置。如果您选在应用部署后设置,应用将会重启生效该配置,请选择业务较少的时段进行高级设置。

如何设置启动命令

您可以在应用部署时为应用设置容器启动和运行时所需的命令,如Nginx。

如何设置环境变量

您可以为应用程序配置运行所需的特定环境变量,如Java_home及其Path,便于部署应用后灵活变更应用的配置。

如何设置Hosts绑定

SAE 支持应用实例级别的实例通过Host绑定对主机名进行解析,方便应用实例通过主机名进行访问。

如何设置应用健康检查

健康检查能帮助您了解集群环境下整个服务的运行状态,从而为审查与定位问题提供帮助。

如何设置日志收集

文件日志收集可以无限制行数查看日志、自行聚合分析日志,方便业务日志对接,按日志使用量计费 。

如何挂载NAS存储

通常容器销毁以后数据也将丢失,数据丢失意味着线上生产环境的灾难性事件。SAE的NAS存储功能,解决了应用实例数据持久化和实例间多读共享数据的问题。

如何设置PostStart和PreStop

通常应用运行前和停止前都会有一些动作,例如用于部署资源的运行前任务;停止前优雅下线应用和通知其他服务或者应用。SAE依托于K8s完美集成了该功能,支持配置PostStart和PreStop。