选择正确的目标
我们已经讨论了用于在云中部署 Java 应用程序的可用选项,更具体地说是在 Azure 上部署。 但哪个选项最能满足你的特定需求? 下面是帮助你进行选择的指南。
平台即服务或基础结构控制?
要问的第一个问题是,你是要完全控制应用程序,还是要使用平台即服务 (PaaS) 解决方案。 你的回答通常取决于你工作的团队的需求。
PaaS 解决方案更易于使用。 许多团队更喜欢这些解决方案,因为它们成本更低、可靠性更高且安全性更佳。
团队之所以选择 PaaS 解决方案,原因如下:
- 他们需要快速投入生产,而他们只有有限的运营团队,或者根本没有运营团队。
- 他们有一定的高可用性、安全性或符合性要求,并且他们可以通过托管服务提供的现成功能来满足这些需求。
- 他们可能没有资源或者意愿来维护生产级基础结构。
但有些团队更喜欢对基础结构拥有完全控制权限,这主要是出于以下原因:
- 如果使用的是特定的专有软件或非通用 Java 功能,托管服务可能不适合。 例如,你可能想要使用网络广播来查找应用程序节点,但此功能在托管服务上不可用。
- 你可能想要使用特定的本机库,而它也不能在托管服务上运行。
在 Azure 上选择 PaaS 解决方案
对于在平台即服务解决方案上运行 Java 工作负载,Azure 提供了四种可能的解决方案:
- Azure Functions:最适合简单的事件驱动的工作负载,并且可以非常好地进行缩放。
- Azure 应用服务:最适合运行 Jakarta EE 工作负载。
- Azure Spring Apps:最适合运行 Spring Boot 应用程序,尤其是 Spring Cloud 微服务。
在 Azure 上选择基础结构控制
若要完全控制部署,Azure 提供以下两个主要选项:
- Azure 容器应用:最适合用于运行基于容器的简单 Java 整体应用程序。
- Azure Kubernetes 服务 (AKS):最适合更复杂的基于容器的 Java 应用程序。 你还可受益于丰富的 AKS 生态系统。
- Azure 虚拟机:最适合运行任何类型的工作负载,或者想要从现有的本地基础结构中“直接迁移”,而不是重新架构应用程序。
可帮助你做出决定的最后一部分内容
决定目标只是第一步。 选择服务时,请记住以下事项:
- 根据所选的服务类型和你自己的运营团队的技能集,维护任务将有很大的差异。
- 开发人员将每天使用该平台,因此,如果该服务提供了卓越的开发人员体验,开发人员就能提高工作效率。
对于这两点,你的选择取决于你的团队。 最佳做法是选择与团队的专业知识和偏好匹配的目标。