MIGRATE JAVA APPS ON AZURE

Choose Azure destination for your Java Apps? Java on Azure Series

RK Iyer
4 min readJan 18, 2022

GAMEPLAY #1 LEVEL BEGINNER

Co-Author — Sen Sayantani

Photo by Michiel Leunens on Unsplash

❑ Background

17 years ago, when I started my career as a Java/J2ee developer, I never thought I would be working for Microsoft some day since I always had an impression that Microsoft is .Net,C# company and would never have any place for me. This perception changed completely when I joined Microsoft.

Infact, Microsoft uses Java extensively. Java is used extensively in Microsoft’s most critical and strategic products like SQL Server, Azure, Minecraft, LinkedIn and Yammer. Infact, Most of the Yammer back-end is implemented in Java & LinkedIn alone has over 1800+ Java microservices in production.

In this series, I am planning to share some of my experiences and approaches of leveraging Microsoft Azure platform to deploy your existing or new Java applications. In this blog, We will discuss various options and methods to choose right Azure Platforms in Azure.

❑ Step 1 - Understand & identify the Application type

Before finalizing it is important to understand to understand & identify the application type. The application could be one of the below types -

  • Spring Boot / JAR applications — These applications handle web requests, but instead of relying on an application server to provide HTTP request handling, they incorporate HTTP communication and all other dependencies directly into the application package. These applications are frequently built with frameworks such as Spring Boot, Dropwizard, Micronaut, MicroProfile, Vert.x, and others.
  • Spring Cloud / microservices —A single application is developed using a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are frequently built with frameworks such as Spring Cloud.
  • Web applications — These web applications run inside a Servlet container using servlet APIs directly or additional frameworks that encapsulate servlet APIs, such as Apache Struts, Spring MVC, JavaServer Faces (JSF), and others.
  • Java EE applications- The Java EE applications (also referred to as J2EE applications or, more recently Jakarta EE applications) can contain some, all, or none of the elements of web applications. They can also contain and consume many additional components as defined by the Java EE specification. Java EE applications must be deployed onto Java EE-compliant application servers (such as WebLogic, WebSphere, WildFly, GlassFish, Payara, and others).
  • Batch / scheduled jobs- These applications are intended to run briefly, execute a particular workload, and then exit rather than wait for requests or user input. These jobs need to run once or at regular, scheduled intervals. On premises, such jobs are often invoked from a server’s crontab.

Once the application type is identified. Next step is to understand different options in Azure.

❑ Step 2 — Understand various options to migrate Java Apps on Azure

Various Options to migrate Java Apps on Azure

There are 3 broad categories of options for migrating Java Apps on Azure-

IaaS — Infrastructure-as-a-Service —

  • Robust up-to-date marketplace images and solution for Web Logic on Azure, Web Sphere on Azure, JBoss EAP on Azure.
  • Please find below motivations for Moving to IaaS

🗹 Need full control over infrastructure and application lifecycle

🗹 Apps have dependencies into proprietary app servers or complex cluster configurations

🗹 Related PaaS offerings are unavailable

🗹 Familiarity of deploying and running at scale using virtual machines

🗹 Moving older systems without documentation or expertise

Containers — Container-as-a-Service

🗹 Modernize your Java applications using containers

🗹 Familiarity of deploying and running at scale using containers

🗹 Portability between different platforms and clouds — it’s truly write once, run anywhere.

🗹 Efficiency through using far fewer resources than VMs and delivering higher utilization of compute resources

PaaS— Platform-as-a-Service

🗹 Cut time to code new apps with pre-coded application components built into the platform e.g. Monitoring, security, logging etc.

🗹 Reduce maintenance and management overhead

🗹 Requires capabilities to support the complete web application lifecycle within the same integrated environment.

🗹 Requires Out of the box global scale with high availability

❑ Step 3 - Choose your Azure destination for Java application?

Below flowchart shows a simple flowchart to help in choosing destination Azure Service.

❑ Reference

Migrate Java applications to Azure | Microsoft Docs

I hope this blog helped you in understanding various migration options in Azure & choosing Azure destination for your Java App Azure. We will drill down on each of these option in upcoming blogs.

Till then, Happy Learning!!!

Please Note — All opinions expressed here are my personal views and not of my employer.

Thought of the moment-

Have the courage to follow you heart and intuition. They somehow know what you want to become. — Steve Jobs

--

--

RK Iyer
RK Iyer

Written by RK Iyer

Architect@Microsoft, Technology Evangelist, Sports Enthusiast! All opinions here are my personal thoughts and not my employers.

No responses yet