作者:Jialuo Gan - Program Manager, Developer Division at Microsoft
排版:Alan Wang
大家好,欢迎回到10月份的Java on Azure Tooling的更新。在这次更新中,我们将介绍我们在未来几个月的新路线图。此外,我们还对用户在IDE中直接使用Azure Functions的部署槽(deployment slots)做了一些改进,在我们最新的版本中。请下载并安装Azure Toolkit for IntelliJ。我们希望你喜欢这些功能,并享受我们的Azure工具包带来的流畅体验。那么让我们开始吧。
让我们来展望对未来几个月的Java on Azure工具的关键投资领域。我们的目标是为Azure上的Java开发者提供一个无缝的代码到云的体验。为了实现这一目标,我们将继续确保Java开发者能够轻松管理和部署Azure服务。此外,我们还将投资于与微服务和基于容器的服务的整合,为云原生开发者提供更好的服务。
容器技术正在成为云原生Java应用(和一些传统Web应用)的规范,Kubernetes正在成为行业标准。容器优先的开发概念引入了新的工作流程和复杂性,但平台和工具在转移到容器应用和Azure Kubernetes服务等其他服务时,已经为开发者消除了微服务架构的复杂性。
为了满足这一需求,我们计划在我们的工具包中支持Azure Container Apps/AKS服务,在这些工具包中,Java开发人员可以开发、管理、部署和监控他们基于AKS/ACA的Java工作负载,而无需离开IDE。此外,日志、指标和分布式跟踪可以帮助开发人员监控和排除应用程序的问题。这些功能,例如远程调试,受到了开发人员的高度重视。展望未来,我们将支持从Azure Spring Apps和Azure Functions进行远程调试。我们还将研究针对Azure的丰富的Spring代码编写和IntelliJ的部署经验,比如与JHipster的整合,以帮助开发者更好地搭建脚手架项目。
我们的下一个投资领域是与更多的Azure后端服务集成。在之前发布的版本中,我们在工具包支持对Azure VM和Cosmos DB服务的管理,这些功能已经被许多的Java开发者使用。
我们知道,Java开发者在将Java应用部署到Web Apps和Function时,也有对一些Azure后端服务的需求,如Event Hub和Service Bus服务。为了满足这些需求,我们正计划支持这些服务。此外,我们还将继续支持 Azure服务的最新功能。
当开发人员在IDE中进行Azure应用时,他们很难在IDE中直接找到相关的Azure SDK,以及针对每个资源相关的示例代码。在开始使用SDK库之前,由于要进行多次上下文切换或重定向,这将会很耗费时间。因此,我们正计划提供对应的实例代码加强Azure SDK参考书的体验。在此基础上,编码方面的发现流程将与各服务的特定API或SDK保持一致,而无需在浏览器上搜索。
目前,我们的命令行工具包括Maven Plugin for Azure Web Apps/Functions/Azure Spring Apps和Gradle Plugin for Azure Web Apps/Functions。我们计划支持更多的命令来部署多模块项目,以增强我们的插件体验。我们将继续在Maven和Gradle插件中添加App Service和Functions的最新关键Java相关的功能。此外,我们还计划将我们的插件与CI/CD Pipelines 整合,如DevOps、GitHub Actions等。此外,我们还在研究使用Maven插件将Java应用部署到Azure容器应用或Azure Kubernetes的Azure托管服务的可能性。
我们的下一个投资重点是用户体验。我们的目标是提供用户界面友好的工作流程,以确保Java开发者在IDE中的互操作性和流畅的Azure管理体验。我们注意到,在我们目前的产品中,仍然存在一些问题,如缺乏用户体验指标,入门体验的使用率低,等等。我们将致力于为开发者带来更好的体验。我们还计划改进指导性的入门体验,以及引入新的升级更新机制,使你在旧的IntelliJ IDE版本中也能享受新的功能。
对于想在Azure上托管自己的Web应用的Java Web开发人员来说,他们不仅需要熟悉IDE或CLI等开发工具,还需要学习Azure云概念,以便成功部署到云上。因此,我们计划进行投资,以实现以应用为中心的体验,减少云概念的学习曲线,简化代码到云的体验,包括与Azure Developer CLI的整合。
此外,我们还计划增加与资源连接器服务(Resource Connector)的无缝集成,这有助于为所有Java Azure开发者提供统一的资源连接管理体验。从长远来看,我们可以让资源连接器服务处理 “云 “方面的服务配置,然后让IDE中的Azure Toolkit处理 “代码 “方面的项目/环境配置。
除上述领域外,我们会一如既往的提高工具包的稳定性,减少错误率,为用户提供更好的性能和可靠性。
在6月份的更新中,我们为Gradle插件上的Azure Functions增加了部署槽(Deployment Slots)支持。Azure Functions部署槽允许你的 Function应用运行不同的实例,称为 “槽”。更多细节请参见Azure Functions部署槽。
我们一直有听到Java开发者的反馈,他们希望Azure Toolkit for IntelliJ也能提供这种支持。10月份,我们在最新的版本中进一步增强了IntelliJ IDEA上Azure Functions的这种体验。你可以直接在IDE中创建、选择和交换部署槽。下面是一个简短的演示。
Azure Functions 部署槽支持
如果您感兴趣,请不要犹豫并尝试使用我们的产品吧! 您的反馈和建议对我们非常重要,将有助于我们产品的未来发展。
以下链接和资源能帮助您更好地了解 Java on Azure Tooling 的相关信息: