18.1 权衡部署选项

您可以通过多种方式构建和运行 Spring Boot 应用程序。附录中介绍了这些方式,包括:

  • 使用 Spring Tool Suite 或 IntelliJ IDEA 在 IDE 中运行应用程序
  • 使用 Maven springboot:run 或 Gradle bootRun,从命令行运行应用程序
  • 使用 Maven 或 Gradle 生成可执行 JAR,然后在命令行或部署在云中运行
  • 使用 Maven 或 Gradle 生成 WAR 文件,然后部署到传统 Java 应用服务器中运行
  • 使用 Maven 或 Gradle 生成容器镜像,可以部署到任何支持容器的位置,包括 Kubernetes 环境。

这些选项中的任何一个都适合在开发过程中运行应用程序。但是,当您准备将应用程序部署到生产环境,或其他非开发环境中,应该怎么选择呢?

虽然从 IDE 或通过 Maven 或 Gradle 运行应用程序的方式,不适用于生产环境,但可执行 JAR 文件和传统 Java WAR 文件是适用于生产环境的。 那如何选择是部署 WAR 文件,还是 JAR 文件呢?一般来说,这取决于您是想将应用程序部署到传统 Java 应用服务器还是云平台:

  • 部署到云端 ——如果您计划将应用程序部署到 PaaS 平台,如 Cloud Foundry,可执行的 JAR 文件是最好的选择。即使云平台支持 WAR 文件部署,但 JAR 文件格式比 WAR 格式简单得多,WAR 格式是为应用服务器部署设计的。
  • 部署到 Java 应用服务器 —— 如果必须将应用程序部署到 Tomcat、WebSphere、WebLogic 或任何其他传统 Java 应用程序服务器,真的别无选择,只能将应用程序构建为 WAR 文件。
  • 部署到 Kubernetes —— 现代云平台越来越多地基于 Kubernetes。部署到 Kubernetes 时,它本身就是一个容器编排系统,最明显的选择是将应用程序构建成容器映镜像。

在本章中,我们将重点介绍三种部署场景:

  • 将 Spring Boot 应用程序构建为可执行 JAR 文件,可推送到 Paas 平台。
  • 将 Spring Boot 应用程序构建为 WAR 文件,部署到 Java 应用程序服务器,比如 Tomcat。
  • 将 Spring Boot 应用程序打包到 Docker 容器中,以便部署到支持 Docker 的云平台。

首先,让我们来看看构建 Spring Boot 应用程序最常见的方法:可执行 JAR 文件。

results matching ""

    No results matching ""