根据 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应用程序。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。