Kubernetes primary target for Spring applications migrated to the cloud – Visual Studio Magazine


Microsoft Report: Kubernetes Top Target for Spring Applications Migrated to the Cloud

Microsoft surveyed SpringOne 2021 attendees to find out how they migrate Spring applications to the cloud, finding that Kubernetes has supplanted virtual machines as the primary target platform.

“The primary cloud destinations for Spring Boot applications are Kubernetes and Platform-as-a-Service (PaaS) solutions,” said a December 2 Microsoft Tech community article titled ”
Report 2021: How Developers Are Migrating Spring Applications to the Cloud. ”

“Developers are moving from virtual machines to Kubernetes and PaaS solutions. Managed Kubernetes services are available on cloud platforms, and the majority of developers who deploy on Kubernetes deploy to managed Kubernetes services (50%) such as AKS, EKS, and GKE, compared to self-managed Kubernetes on virtual machines ( 36%). ”

graph showing how platforms have targeted spring startup apps over time, with Kubernetes now leading with over 70% of respondents
[Click on image for larger view.] Targeted platforms for Spring Boot applications (source: Microsoft).

Indeed, the graph above shows that in 2019 both Kubernetes and virtual machines were targeted by around 30% of Spring developers who were migrating Spring Boot applications (minimum configuration), whereas today it is is over 70% for Kubernetes and less than 40% for virtual machines. About 21% of developers plan to use multiple destinations for Spring Boot applications.

In addition to the targeted platforms for Spring Boot application deployments, the report also examines the challenges of migrating Spring Boot application to the cloud, key monitoring tools, and key Spring Cloud components in use today. .

Challenges of migrating the Spring application to the cloud
Microsoft has classified them into three categories and commented on them like this:

  • Migrate the challenges of the Spring application: Developers face the challenge of migrating monolithic Spring Boot applications to cloud-ready applications (33%), unsupported versions of Spring Boot to supported versions (20%), and unsupported versions. load Spring Cloud components to supported versions (20%).
  • Turning applications into Spring challenges: From The state of spring 2021 report, we learned that 61% of surveyed developers use Spring Boot as their sole or primary development platform. Spring usage continues to grow – for 2021, that number has increased from 9 percent to 61 percent of organizations. Hence, application modernization to Spring Boot is popular among developers and they are moving from POJO, Java EE, Spring MVC and Mainframe applications to Spring Boot. While these transformations are increasingly common, there are significant challenges and almost always require code rewriting. This provides an opportunity to help developers transform their applications more effectively with better tools and experiences.
  • Cloud migration challenges: The main challenges when migrating Spring Boot applications to the cloud are migration of associated databases (30%), end-to-end monitoring (24%), testing of migrated applications (23%), end-to-end automation (18%) and reduced traffic to new production (18%) in the cloud.

Regarding the first point above – migrating from monolithic Spring Boot applications to cloud-enabled Spring Boot applications – Microsoft has said that such transformations usually involve many things, including:

  • Rely on databases for business state, storage for shareable artifacts, and cache for data shared between application instances – instead of local files

  • Building on ports 80 and 443
  • Producing logs as an event stream

  • Scaling to multiple instances to increase availability instead of scaling

  • Outsource 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 point of entry by integrating on behalf of specific customers by routing calls through Spring Cloud Gateway

  • Instrument applications for distributed tracing

  • Defuse cascading failures using Spring Cloud Circuit Breaker.

Main monitoring tools used by developers
As mentioned above, end-to-end monitoring was the # 2 reported challenge in migrating Spring Boot applications to the cloud, behind only the migration of associated databases.

“Application development, DevOps, infrastructure and SRE teams benefit from monitoring and understanding the performance of their cloud applications,” Microsoft said. “Observability and monitoring solutions collect and analyze a large amount of data from application environments. Most organizations allow all teams, including SRE and infrastructure teams, to help sales teams better understand the operational aspects of their business applications. This practice helps company executives and stakeholders to make data-driven business decisions. ”

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

When asked about their best application performance monitoring (APM) tools, Spring Boot developers reported that cloud vendors’ own APM offerings were heavily used, such as Application Insights (a feature of Azure Monitor) and Amazon CloudWatch. on the AWS Cloud. Close to these were Prometheus and other traditional APM products including Dynatrace, AppDynamics, Datadog, and New Relic.

When asked what the best end-to-end monitoring tools are, the responses were: Splunk (34%); Elastic (29%); Tools from cloud providers, such as Azure Log Analytics (27%); Our own internal application monitoring tool (20%); We do not use any end-to-end application monitoring tool (11%); and Other (5 percent).

Main Spring Cloud components used by developers
The first answer here was Spring Cloud Config Server, listed by 49% of respondents. After that there was the Gateway, Service Registry, Load Balancer, Circuit Breaker with Resilience4J, etc.

graphic showing the main Spring Cloud components in use today, with the Spring Cloud configuration server listed at the top
[Click on image for larger view.] Most Used Spring Cloud Components (source: Microsoft).

“While many organizations and developers migrate monolithic Spring Boot applications to cloud-enabled Spring Boot applications and migrate Spring Boot applications to the cloud, the main 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 to apply recipes to migrate Spring Boot monoliths to cloud native Spring Boot applications.”

Microsoft said the report was inspired by VMware’s “The State of Spring” reports in 2021 and last year. The survey supporting the report reached a total of 260 qualified individuals attending the SpringOne 2021 conference in September. Microsoft estimates that 55% of those surveyed were field developers, 28% were architects and development managers, and 17% were infrastructure experts, business experts, or senior executives.

About the Author

David Ramel is editor and writer for Converge360.

Comments are closed.