Microsoft Updates Java for Azure Spring Cloud

Microsoft continued to beef up its support for Java developers in both the cloud and its popular, open source, cross-platform code editor, Visual Studio Code (VS Code), with new updates to Azure Spring Cloud since the Spring Boot-based service reached generally available (GA) status last September, along with the regular monthly update to Java in VS Code.

Azure Spring Cloud is a fully managed service jointly built and operated by Microsoft and VMware. It's designed to help developers create modern microservice patterns for Spring Boot and Steeltoe .NET Core apps by eliminating boilerplate code and accelerating app development in the cloud. Spring Boot is an open source Java-based framework used for developing stand-alone, production-grade Spring-based apps; Steeltoe is an open source project for developing cloud-native .NET microservice applications.

Although .NET and Java are often characterized as competing alternatives, Microsoft has been catering more and more to users of languages other than its flagship C#, including Java and Python, among others.

Since reaching GA in September, Azure Spring Cloud has received numerous updates, including:

  • Seven more regions were enabled, making Azure Spring Cloud available in 18 regions of Asia Pacific, Australia, Canada, China, Europe, India, Korea, United Arab Emirates, United Kingdom and the United States.
  • Full APM Capabilities are provided via a Java in-process agent for Application Insights, an extensible Application Performance Management (APM) service.
  • Specific functionality includes:
    • Visibility into all applications with distributed tracing, including paths of operation requests from origins to destinations and insights into applications that are operating correctly and those with bottlenecks.
    • Logs, exceptions, and metrics in the context of call paths offer meaningful insights and actionable information to speed root cause analysis.
    • Insights into application dependencies -- SQL Database, MySQL, PostgreSQL, MariaDB, JDBC, MongoDB, Cassandra, Redis, JMS, Kafka, Netty / WebFlux, etc.
    • Performance data for every call into operations exposed by applications, including data-like request counts, response times, CPU usage, and memory.
    • Custom metrics conveniently auto-collected through Micrometer, allowing you to publish custom performance indicators or business-specific metrics and visualize deeper application and business insights.
    • Ability to browse, query, and alert on application metrics and logs.
  • Secure communication with external resources is provided with the ability to get static outbound public IP addresses of Azure Spring Cloud applications in order to communicate with things like databases, storage and key vaults. Because some network environments are protected by firewalls that allow only whitelisted IP addresses inbound to internal networks, developers can now, for example, whitelist an Azure Spring Cloud app in Azure Database for MySQL. "You can explicitly add all the outbound IPs of your Azure Spring Cloud apps." More about that is available here.
  • Azure Spring Cloud extension for Visual Studio Code: "Besides feature requests for the Azure Spring Cloud service, we also received requests from developers about how to deploy and manage apps in their familiar environment. You can now use Azure Toolkit for IntelliJ or Azure Spring Cloud extension for VS Code to quickly create, manage and deploy apps to Azure Spring Cloud."

Microsoft provided more information about the Azure Spring Cloud extension in its regular monthly update to Java in Visual Studio Code.

"The release underlines that VS Code is not only good for tasks like editing, running, debugging and testing, but also provides a seamless end-to-end experience for working with services," Microsoft said. "For Java developers on Azure, extensions are also available for other services like Azure App ServicesAzure Functions, and many more."

Also detailed were several testing improvements, including three ways to run tests:

  • Running from Test Explorer: "Test Explorer offers the most comprehensive support for testing. In addition to run cases individually, you can Run All Tests."
  • Running from JAVA PROJECT Explorer: "JAVA PROJECT Explorer provides access to all project related functionality including testing. You can run tests at project level or at individual package or class level."
  • Running from CodeLens: "CodeLens is a VS Code feature that provides context-aware actions through link next to your code. When VS Code detects testing annotation in code, it will provide a link of 'Run Test' and a link of 'Debug Test' next to the annotation for you to quickly place an action without jumping out of your code."

Coincidentally, the VS Code dev team recently shed light on its efforts to address longstanding requests for improved testing support. "Each implementation of testing presents a different set of features, UI, and idiomaticity," the team said. "Because there is no sanctioned approach to tests in VS Code, extension developers tend to make bespoke implementations, as we've seen in the Python and Java language extensions. Ideally, like in debugging, a VS Code user would have just about the same experience as they work between projects and languages."

Other new goodies included in the January 2021 update to Java in VS Code improve accessing testing reports and referring envFile in launch.json for debugging.
While there is no roadmap for what's coming in Java in VS Code, Microsoft did indicate its future plans for Azure Spring Cloud:

  • Managed Virtual Network: allows users to be in control of inbound and outbound network communications for Azure Spring Cloud and enables Azure Spring Cloud to interact with systems in on-premises data centers or Azure services in virtual networks.
  • Autoscale: automates the upscaling or downscaling of the application based on load or schedule -- thus providing cost-efficiency and better performance.
  • E2E TLS: allows users to encrypt and securely transmit sensitive data among applications or from app to the backend.
  • Azure RBAC for managed Spring Cloud Config Server/Service Registry: allows users to authenticate with AAD (Azure Active Directory) token for accessing to managed Spring Cloud Config Server/Service Registry by Azure Spring Cloud service.
  • Integration with third-party APM solutions: enables out-of-box experience with other APM tools such as New Relic, App Dynamics and Dynatrace for Azure Spring Cloud apps.

"We are excited about the improving developer experience we are creating for Azure Spring Cloud service," Microsoft said. "Your feedback has been instrumental in shaping these features, keep the feedback coming."

About the Author

David Ramel is an editor and writer for Converge360.