News

Microsoft Report: Kubernetes Top Target for Cloud-Migrated Spring Apps

Microsoft surveyed SpringOne 2021 attendees to discover how they are migrating Spring apps to the cloud, finding that Kubernetes has supplanted virtual machines as the top target platform.

"Top cloud destinations for Spring Boot apps are Kubernetes and Platform-as-a-Service (PaaS) solutions," said a Dec. 2 Microsoft Tech Community post titled "2021 Report: How developers migrate Spring apps to the cloud."

"Developers are moving away from virtual machines to Kubernetes and PaaS solutions. Managed Kubernetes services are available across cloud platforms, and the majority of developers who are deploying to Kubernetes are deploying to managed Kubernetes services (50 percent) such as AKS, EKS, and GKE, versus self-managed Kubernetes on virtual machines (36 percent)."

chart showing how platforms targeted for spring boot apps over time, with kubernetes now at the top with over 70 percent of respondents
[Click on image for larger view.] Platforms Targeted for Spring Boot Apps (source: Microsoft).

Indeed, the above chart shows in 2019 Kubernetes and VMs were both targeted by about 30 percent of Spring developers who were migrating Spring Boot (minimal configuration) apps, while now it's more than 70 percent for Kubernetes and less than 40 percent for VMs. About 21 percent of developers plan to use multiple destinations for Spring Boot apps.

Along with platforms targeted for Spring Boot app deployments, the report also investigates challenges with Spring Boot app migration to the cloud, top monitoring tools and top Spring Cloud components used today.

Challenges with Spring App Migration to the Cloud
Microsoft put these into three categories and commented on them like this:

  • Migrating Spring app challenges: Developers are challenged with migrating Spring Boot monolith apps to cloud-friendly apps (33 percent), unsupported versions of Spring Boot to supported versions (20 percent), and unsupported versions of Spring Cloud components to supported versions (20 percent).
  • Transforming apps to Spring challenges: From The State of Spring 2021 report, we learned that 61 percent of developers surveyed use Spring Boot as their only or primary development platform. The Spring use continues to grow -- for 2021, that number grew 9 percent to 61 percent of organizations. Hence, the app modernization to Spring Boot is popular among developers and they are transforming from POJO, Java EE, Spring MVC, and Mainframe apps to Spring Boot. Although these transformations are becoming more common, there are substantial challenges and almost always require rewriting code. This presents an opportunity to help developers transform their applications more efficiently with better tooling and experiences.
  • Cloud migration challenges: The top challenges when migrating Spring Boot apps to the cloud are migrating associated databases (30 percent) end-to-end monitoring (24 percent), testing migrated apps (23 percent), end-to-end automation (18 percent), and cutting over traffic to a new production (18 percent) in the cloud.

Regarding the first bullet point above -- migrating Spring Boot monolith apps to cloud-friendly Spring Boot apps -- Microsoft said such transformations typically involve many things, including:

  • Relying on databases for the business state, storage for shareable artifacts, and cache for data shared across app instances -- instead of local files
  • Relying on ports 80 and 443
  • Producing logs as event streams
  • Scale-out to multiple instances to increase availability instead of scale-up
  • Externalize configurations by leveraging Spring Cloud Config Server
  • Enable dynamic discovery using Spring Cloud Service Registry
  • Decentralize load balancing decisions using client-side Spring Cloud Load Balancer
  • Use a single-entry point by integrating on behalf of specific clients by routing calls through Spring Cloud Gateway
  • Instrument apps for distributed tracing
  • Defuse cascading failures by using Spring Cloud Circuit Breaker.

Top Monitoring Tools Used by Developers
As mentioned above, end-to-end monitoring was the No. 2 challenge reported in migrating Spring Boot apps to the cloud, behind only migrating associated databases.

"App development, DevOps, infrastructure and SRE teams benefit from monitoring and gaining an understanding of the performance of their cloud applications," Microsoft said. "Observability and monitoring solutions collect and analyze a vast amount of data from app environments, most organizations empower all the teams, including SRE and infrastructure teams, to help business teams to gain insights into operational aspects of their business apps. This practice helps executives and business stakeholders to make data-driven business decisions."

chart showing top apm tools used by spring boot developers, with cloud providers' own tools listed at the top
[Click on image for larger view.] Most Used APM Tools (source: Microsoft).

When asked about their top Application Performance Monitoring (APM) tools, Spring Boot developers reported the cloud providers' own APM offerings were heavily used, such as Application Insights (a feature of Azure Monitor) and Amazon CloudWatch on the AWS cloud. Close behind those were Prometheus and other traditional APM products including Dynatrace, AppDynamics, Datadog and New Relic.

When asked about top end-to-end monitoring tools, the answers were: Splunk (34 percent); Elastic (29 percent); Cloud providers' tools, like Azure Log Analytics (27 percent); Our own in-house application monitoring tool (20 percent); We don't use any end-to-end application monitoring tools (11 percent); and Other (5 percent).

Top Spring Cloud Components Used by Developers
The top answer here was Spring Cloud Config Server, listed by 49 percent of respondents. After that were Gateway, Service Registry, Load Balancer, Circuit breaker w/ Resilience4J and so on.

chart showing top Spring Cloud components used today, with spring cloud config server listed at the top
[Click on image for larger view.] Most Used Spring Cloud Components (source: Microsoft).

"As many organizations and developers are migrating Spring Boot monolith apps to cloud-friendly Spring Boot apps, and migrating Spring Boot apps to cloud, the top Spring Cloud components remain the same over the past three years -- Spring Cloud Config Server, Spring Cloud Gateway, and Spring Cloud Service Registry," Microsoft said. "Open source communities are exploring tools for applying recipes to migrate Spring Boot monoliths to cloud-native Spring Boot apps."

Methodology
Microsoft said this report was inspired by VMware's "The State of Spring" reports in 2021 and last year. The survey backing the report reached a total of 260 qualified individuals attending September's SpringOne 2021 conference. Microsoft estimate 55 percent of respondents were hands-on developers, 28 percent were architects and development managers, and 17 percent were infrastructure experts, line of business experts or C-level executives.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube