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