依据 Stack Overflow 和 GitHub 的说法,Java 是最罕用的语言之一。Java 虚拟机 (JVM) 为高效运行 Java 应用程序提供了一种成熟的办法。在明天的学习推送中,咱们将首先介绍 Java 应用程序最典型的部署类型,并且依据你须要的部署类型,领导你如何抉择适合的 Azure 服务。
应用程序部署类型
你是想要在虚拟机(VM) 上、容器内,还是作为平台即服务 (PaaS) 解决方案来部署应用程序呢?
应用 虚拟机,你所处的环境会相似于本地或传统数据中心环境。Azure 提供一组预配置的 VM,这些 VM 运行主操作系统(Windows 和 Linux),并且你须要配置和保护这些虚拟机。
应用 容器,你依然领有对 VM 的大部分管制,但操作会更少。你能够装置本人的 Java 虚拟机 (JVM) 或某些特定软件,并且你的容器可在本地或任何云供应商上运行。
应用 平台即服务(PaaS)解决方案,大部分保护和操作工作将由云供应商承当。操作系统 (OS) 更新、Java 修补程序、安全性和合乎性都会提供。因而,此选项通常更平安,且老本更低。它还会附带一些可伸缩性性能,这些性能应能让你的应用程序更好地适应客户的需要。借助它还可取得更好的负载下的性能,并在流量较少的状况下降低成本。
▌部署选项
无论你是应用 VM、容器还是平台即服务解决方案,通常都能够通过以下两种形式之一将 Java 应用程序部署到云:
- 源代码部署:将源代码提交到 Git 存储库,云提供商会运行一个过程,该过程将编译、生成并打包应用程序。
- JAR、WAR 或 EAR 文件部署:将应用程序打包为可执行的 JAR(Java 存档)文件,但也可能以 WAR(Web 应用程序存档)、EAR(企业应用程序存档)和其余文件格式进行打包。而后,云供应商将运行此可执行文件。
比拟解决方案
▌Azure 应用服务
Azure 应用服务为运行 Java Web 应用程序提供了一种易于应用的服务,其中蕴含主动操作系统和 Java 虚拟机 (JVM) 更新和修补程序,以及主动缩放或监控。应用服务能够运行任何可执行的 JAR 文件(如 Spring Boot 提供的文件),还能够在最罕用的应用程序服务器(如 Apache Tomcat 或 Red Hat JBoss)上部署任何 WAR 应用程序。对于运行简略的 Java 单片应用程序,这是更优抉择。
▌Azure Functions
在 Azure Functions 上运行 Java 应用程序通常须要一些较小配置和设置。从实质上说,无服务器函数将具备较短的生命周期(通常只有几分钟),通常状况下,某个函数通过事件(如 HTTP 申请)唤醒,只在几分钟内放弃“热”状态,之后它会从新进入休眠状态。从实质上讲,无服务器函数须要专门进行编码。它们的性能取决于运行它们的云供应商,并且它们较短的生命周期使得应用传统解决方案(如高速缓存或 HTTP 会话复制)变得复杂。无服务器函数能够很好地进行缩放,并为低使用量环境提供最优价格。同时,它们可能应答要求最高的流量负载。因而,一些传统上会应用的服务可能不如 Azure 应用服务高效或实用。
▌Azure Spring Cloud
Azure Spring Cloud 是一项举世无双的 Azure 服务,它提供了平台即服务解决方案,用于运行 Spring Boot 微服务。Spring Cloud 提供了许多工具,如服务注册表或配置服务器。它还提供了特定的主动缩放和平安机制,可极大地简化基于 Spring Boot 的微服务体系结构的应用。
你还能够应用 Azure Spring Cloud 服务运行其余工作负载,如 Spring Boot 单片应用程序,或甚至是应用 Steeltoe 的 .NET 微服务,但该服务次要用于运行 Spring Boot 微服务。
还有更多解决方案,这里不一一介绍,可返回相干页面浏览。
咱们曾经探讨了用于在云中部署 Java 应用程序的可选项,哪个选项最可能满足你的特定需要呢?欢送持续学习在云上部署 Java 应用程序。