Modernize Java Apps with AI: Upgrade & Migrate your Applications

Microsoft Developer · Beginner ·🔧 Backend Engineering ·8mo ago

Key Takeaways

The video demonstrates how to modernize Java applications using Microsoft's GitHub Co-Pilot app modernization tool, which leverages AI to upgrade and migrate projects with minimal errors and increased confidence. The tool utilizes Co-Pilot agent mode in Visual Studio Code and open rewrite recipes to deliver an interactive step-by-step experience.

Full Transcript

Those of you familiar with the old Microsoft logo know that this Java cup is a little out ofd and that is what modernization it's about. It's about keeping the flavor but giving it new life. Hi, I'm and I'm a cloud advocate here at Microsoft and in this session I'm going to show you how AI helps us upgrade our application without throwing everything away. Today we're tackling a common but really painful pro problem. Modernizing legacy Java applications and migrating them to the cloud. Whether you're migrating your application to the cloud, updating your Java runtime, modernization is rarely simple. Conflicting or depreciated dependencies, antiquated deployment targets, and lingering security vulnerabilities often block smooth progress. That's exactly where Microsoft's new GitHub co-pilot app modernization tool comes in. Powered by co-pilot agent mode in Visual Studio Code, it de it delivers an interactive step-by-step experience to help you upgrade and migrate Java projects faster with fewer errors and most importantly with more confidence. Today we're working with an application called Asset Manager. It's a web-based asset management system designed to handle image uploads and storage. Users can upload, view, and delete images through a gallery interface. Behind the scenes, it stores files in AWS S3, tracks metadata in PostgreSQL, and uses Rabbit MQ for background processing, as well as Spring Boot with Time Leaf to power the back end and front end. So, this isn't just any toy application. It's a real cloud enabled system that mirrors what many enterprise teams run in production, making it a perfect candidate for modernization. So right now, this application is locked into AWS and Java 7. That's outdated and insecure. Upgrading and migrating a system like this would typically take weeks of manual effort. But with the new app modernization tool, we can let agent we can let the co-pilot agent do the heavy lifting. We'll go ahead and start by analyzing the project to generate an upgrade plan. So we'll go ahead and click on run assessment. Copilot will go ahead and take over as it runs the assessment. The assessment gives us a logical starting point to start looking at all the steps we need to take to upgrade our project. And we can see the assessment is in progress. So we'll go ahead and wait for it to complete. This part is really cool to me because understanding an application you didn't write is the hardest part and here Copilot does it in the matter of minutes. In addition, any tool dependencies such as Appcat are automatically installed which assist with the assessment. And here's the result. A nifty UI we can use as our mission control. As we start to dig into modernizing and upgrading our application, we can see issues are broken down into two categories. Java upgrade issues and cloud readiness issues. The big one we need to tackle is that we're stuck on Java 7. So, we can go ahead and scroll to the bottom and we can see with just one click, Copilot agent mode will take over once again to start working on upgrading our project. Once we trigger the upgrade, Copilot will generate a structured upgrade plan. We'll go ahead and give it a few moments to finish generating the plan. There we go. So, for the sake of this demo, I'm going to scroll through this, look at the execution plan. Looks all good to me. Um, and continue. But in your case, uh if you are running a migration or an upgrade for the first time, this is really important because this is your chance to take a look at the upgrade and make any edits using the co-pilot chat as necessary. So I'll go ahead and click on allow. And we can see now that the upgrade is in progress. Once again, the power is in your hands. The upgrade tool uses tools like open rewrite recipes to update imports, APIs, and dependencies. If build errors occur, it automatically enters a fix and test loop until the project completes. And this is really cool because it mimics essentially what a human developer does. At the end of the day, working with code is really complicated and co-pilot agent iterates through different solving systems to systematically reach the final outcome. Since this can take some time to run, I don't want to make you watch paint dry. We'll go ahead and jump to the finished upgrade in just a few moments. So, if we take a look right here, Copilot just did something really cool. You can see in the copilot chat, it says the CVE validation has identified several critical security vulnerabilities that need to be fixed. So, Copilot also looks at security vulnerabilities and again will automatically address and fix them. Again, one of the very powerful aspects of co-pilot agent mode, it will look at things which we would not even consider looking at until a lot later and it systematically addresses these issues. All right. So, when the upgrade finishes, we get an upgrade summary of all the changes that Copilot made. We can see that co-pilot automatically updates frameworks and dependencies, performs security and CVE checks. In addition, it also points out potential issues that we need to bring our attention to um as we continue with the upgrade and modernization pro process. So now with this upgrade complete, let's go ahead and refresh the assessment report. If Copilot truly did its job, we should no longer see any issues re regarding our Java version. So, let's go ahead and click on run assessment and it will update our assessment report. Okay, so here is the updated assessment report. Let me go ahead and collapse this so it's a little bigger, easier to see. So, success. We can see no more Java upgrade uh issues we need to resolve. Now we have cloud readiness which we need to address. It's really cool because copilot will automatically identify several issues and for this demo we will specifically focus on database. For instance, it recommends migrating our PostgresQL database um from AWS to Azure SQL database. So let's go ahead and click on public cloud click on run task and once I click on migrate oh and we do want to keep the changes copilot is making so once I click on migrate so once I click on run task we have again handed it back into the hands of copilot agent which will start working on the upgrade workflow once I click migrate copilot will draft a plan updating dependencies editing application properties and wiring up Azure SQL configs. Just like the upgrade workflow, Copilot will generate a migration plan and a step-by-step guide on what it will follow as a road map of sorts. As a user, we can review this and tell Copilot it all looks good. Okay, so we can see that the migration plan has been created. We can go ahead and open that up. We can review all the changes that copilot will want to make and once again we can use the co-pilot chat if needed to make any adjustments. We will go ahead and let co-pilot loose once again by telling it uh we are good to go. And while co-pilot continues working, we are free to go get grab a cup of coffee in the meantime and come back once the migration completes. Awesome. So, the migration has completed successfully. We can also go back to our progress report, open up the migration summary. We'll get a migration review, any changes it made. We can see there's no CVE issues and that everything is looking great. So, this is success at least for the first part of this migration. We can rinse and repeat this same process for all the other items in our to-do list, which the assessment report brings to our attention. It is now easier than ever before to modernize and migrate your application with the new app modernization tool from GitHub. So, let's recap. We started with the asset manager tool and it was on Java 7 hosted on AWS. We ran the assessment report and used co-pilot agent mode to upgrade our project to Java 21. We migrated the SQL database from AWS over to Azure. And we verified that everything works with automated builds, tests, and CVE scanning. All of this was done through guided AI assisted steps. No more weeks of manual trial and error, scratching your head, and frustration. And this is just the start. In the next video, we'll have our application fully migrated and we will use the same tool to actually deploy this modernized application to Azure with just a single click using the power of AI. If you would like to find supporting content resources and the code we used, you can find them at aka.m/java and AI for beginners. It's also linked in the description of this video. And we'll see you in the next episode.

Original Description

In this transformative episode, Ayan Gupta demonstrates how AI is revolutionizing the way we modernize legacy Java applications. Just like updating an old logo while keeping the flavor, modernization is about giving your applications new life without throwing everything away. And now, with GitHub Copilot's new App Modernization tool, this process has become dramatically faster and more reliable. This session tackles one of the most painful problems in enterprise development: modernizing legacy Java applications and migrating them to the cloud. Whether you're upgrading your Java runtime, migrating databases, or moving from AWS to Azure, modernization projects traditionally take weeks or months of manual effort, and are prone to errors at every step. Using the Asset Manager application as a real-world example (a production-like system running Java 7 with AWS S3, PostgreSQL, RabbitMQ, and Spring Boot), Ayan shows you how the GitHub Copilot App Modernization tool uses agent mode to handle the entire upgrade process. You'll see how it automatically analyzes your project to identify upgrade issues and security vulnerabilities, generates a comprehensive upgrade plan for review, applies changes using tools like OpenRewrite recipes, enters a fix-and-test loop to resolve build errors, and validates security with automated CVE scanning. The demonstration upgrades the application from Java 7 to Java 21, fixing deprecated dependencies, updating frameworks, and resolving security vulnerabilities, all through guided AI-assisted steps. You'll also see how the tool identifies cloud readiness issues and begins the migration from AWS services to Azure alternatives. Resources: aka.ms/JavaAndAIForBeginners 0:00 - Introduction: Modernization with AI 0:28 - The Modernization Challenge 1:05 - Introducing Asset Manager Application 1:57 - Why This App Needs Modernization 2:21 - GitHub Copilot App Modernization Tool 2:46 - Running the Assessment Report 3:04 - Understanding Assessment Res
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Microsoft Developer · Microsoft Developer · 0 of 60

← Previous Next →
1 Prepare for the DP-300 exam & the Azure Database Administrator Associate cert | Data Exposed
Prepare for the DP-300 exam & the Azure Database Administrator Associate cert | Data Exposed
Microsoft Developer
2 What I Wish I Knew ... about landing a job in tech
What I Wish I Knew ... about landing a job in tech
Microsoft Developer
3 Igniting Developer Innovation with Vector Search
Igniting Developer Innovation with Vector Search
Microsoft Developer
4 Combining the power of vector search with Azure OpenAI then revolutionize image search with vectors!
Combining the power of vector search with Azure OpenAI then revolutionize image search with vectors!
Microsoft Developer
5 What I Wish I Knew ... about finding your place in tech
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
6 Fluent UI React Insights: Accessible by default
Fluent UI React Insights: Accessible by default
Microsoft Developer
7 Signing Container Images with Notary Project
Signing Container Images with Notary Project
Microsoft Developer
8 What I Wish I Knew ... about finding your place in tech
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
9 What programming languages does GitHub Copilot support?
What programming languages does GitHub Copilot support?
Microsoft Developer
10 What I Wish I Knew ... about how much your job can change
What I Wish I Knew ... about how much your job can change
Microsoft Developer
11 What I Wish I Knew ... about how much your job can change
What I Wish I Knew ... about how much your job can change
Microsoft Developer
12 How do I become more confident about AI?
How do I become more confident about AI?
Microsoft Developer
13 How do I become more confident about AI?
How do I become more confident about AI?
Microsoft Developer
14 Performance Demos of SQL’s Intelligent Query Processing Feedback capabilities | Data Exposed
Performance Demos of SQL’s Intelligent Query Processing Feedback capabilities | Data Exposed
Microsoft Developer
15 What I Wish I Knew ... about coming to Microsoft
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
16 What I Wish I Knew ... about coming to Microsoft
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
17 Revolutionizing Image Search with Vectors
Revolutionizing Image Search with Vectors
Microsoft Developer
18 Igniting developer innovation with Vector search and Azure OpenAI
Igniting developer innovation with Vector search and Azure OpenAI
Microsoft Developer
19 Getting Started with Azure AI Studio's Prompt Flow - Part 2
Getting Started with Azure AI Studio's Prompt Flow - Part 2
Microsoft Developer
20 What I Wish I Knew ... about finding my career path
What I Wish I Knew ... about finding my career path
Microsoft Developer
21 What I Wish I Knew ... about finding my career path
What I Wish I Knew ... about finding my career path
Microsoft Developer
22 Windows Terminal's journey to Open Source
Windows Terminal's journey to Open Source
Microsoft Developer
23 Can I trust the code that GitHub Copilot generates?
Can I trust the code that GitHub Copilot generates?
Microsoft Developer
24 What I Wish I Knew ... about interviewing
What I Wish I Knew ... about interviewing
Microsoft Developer
25 What I Wish I Knew ... about interviewing
What I Wish I Knew ... about interviewing
Microsoft Developer
26 What is the Microsoft TechSpark Program?
What is the Microsoft TechSpark Program?
Microsoft Developer
27 SQL Server 2022: Accelerate query performance while reducing query compile time - w/ no code changes
SQL Server 2022: Accelerate query performance while reducing query compile time - w/ no code changes
Microsoft Developer
28 What I Wish I Knew ... about discovering computer science
What I Wish I Knew ... about discovering computer science
Microsoft Developer
29 What I Wish I Knew ... about discovering computer science
What I Wish I Knew ... about discovering computer science
Microsoft Developer
30 Call center transcription and analysis using Azure AI
Call center transcription and analysis using Azure AI
Microsoft Developer
31 How to use Text Analytics for health in Azure AI Language
How to use Text Analytics for health in Azure AI Language
Microsoft Developer
32 Azure OpenAI-powered summarization in Azure AI Language
Azure OpenAI-powered summarization in Azure AI Language
Microsoft Developer
33 Accelerate data labeling using Azure OpenAI and Azure AI Language
Accelerate data labeling using Azure OpenAI and Azure AI Language
Microsoft Developer
34 Building a Private ChatGPT with Azure OpenAI
Building a Private ChatGPT with Azure OpenAI
Microsoft Developer
35 What I Wish I Knew ... about how to interview
What I Wish I Knew ... about how to interview
Microsoft Developer
36 What I Wish I Knew ... about how to interview
What I Wish I Knew ... about how to interview
Microsoft Developer
37 Getting Started with Azure AI Studio's Prompt Flow - Part 3
Getting Started with Azure AI Studio's Prompt Flow - Part 3
Microsoft Developer
38 Intelligent Apps with Azure Kubernetes Service (AKS)
Intelligent Apps with Azure Kubernetes Service (AKS)
Microsoft Developer
39 Getting Started with Azure Blob Storage | Data Exposed: MVP Edition
Getting Started with Azure Blob Storage | Data Exposed: MVP Edition
Microsoft Developer
40 Chat + Your Data + Plugins
Chat + Your Data + Plugins
Microsoft Developer
41 What I Wish I Knew ... about different career paths
What I Wish I Knew ... about different career paths
Microsoft Developer
42 What I Wish I Knew ... about different career paths
What I Wish I Knew ... about different career paths
Microsoft Developer
43 Advanced Dev Tunnels Features | OD122
Advanced Dev Tunnels Features | OD122
Microsoft Developer
44 Learn Live - Manage performance and availability in Azure Cosmos DB for PostgreSQL
Learn Live - Manage performance and availability in Azure Cosmos DB for PostgreSQL
Microsoft Developer
45 Plan your SQL Migration to Azure with confidence | Data Exposed
Plan your SQL Migration to Azure with confidence | Data Exposed
Microsoft Developer
46 What I Wish I Knew ... about social skills in a tech career
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
47 What I Wish I Knew ... about social skills in a tech career
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
48 All About Vectors, Search, and Function Calling in Azure OpenAI - Labor Day Special
All About Vectors, Search, and Function Calling in Azure OpenAI - Labor Day Special
Microsoft Developer
49 Introduction to project ORAS
Introduction to project ORAS
Microsoft Developer
50 What I Wish I Knew ... about finding the right major
What I Wish I Knew ... about finding the right major
Microsoft Developer
51 What I Wish I Knew ... about finding the right major
What I Wish I Knew ... about finding the right major
Microsoft Developer
52 What I Wish I Knew ... about how to approach programming
What I Wish I Knew ... about how to approach programming
Microsoft Developer
53 What I Wish I Knew ... about how to approach programming
What I Wish I Knew ... about how to approach programming
Microsoft Developer
54 Learn Live - Scale from a single node to multiple nodes with Azure Cosmos DB for PostgreSQL
Learn Live - Scale from a single node to multiple nodes with Azure Cosmos DB for PostgreSQL
Microsoft Developer
55 What I Wish I Knew ... about diversity in tech #1
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
56 What I Wish I Knew ... about diversity in tech #1
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
57 Get started with SQL Server AGs across Windows, Linux and Container Replicas | Data Exposed
Get started with SQL Server AGs across Windows, Linux and Container Replicas | Data Exposed
Microsoft Developer
58 Writing LLM Apps with Azure AI and PromptFlow
Writing LLM Apps with Azure AI and PromptFlow
Microsoft Developer
59 What I Wish I Knew ... about how cool working in tech could be
What I Wish I Knew ... about how cool working in tech could be
Microsoft Developer
60 Open Source foundation models in Azure Machine Learning & optimization techniques behind the scenes
Open Source foundation models in Azure Machine Learning & optimization techniques behind the scenes
Microsoft Developer

This video teaches viewers how to modernize Java applications using GitHub's Co-Pilot app modernization tool, which utilizes AI to streamline the upgrade and migration process. By following the steps outlined in the video, viewers can confidently modernize their legacy applications and migrate their databases to the cloud. The key takeaway is that AI-powered tools can significantly simplify the modernization process, reducing errors and increasing efficiency.

Key Takeaways
  1. Run assessment using GitHub Co-Pilot
  2. Click on run assessment and wait for completion
  3. Scroll to the bottom and click to trigger the upgrade
  4. Give it a few moments to finish generating the plan
  5. Click on allow and run assessment
  6. Click on public cloud and run task
  7. Click on migrate
  8. Ran assessment report
  9. Upgraded project to Java 21 using Co-Pilot agent mode
  10. Migrated SQL database from AWS to Azure
💡 AI-powered tools like GitHub Co-Pilot can significantly simplify the modernization process, reducing errors and increasing efficiency by leveraging open rewrite recipes and Co-Pilot agent mode.

Related Reads

📰
PDF Tamper Detection API for Laravel and PHP: Integration Guide
Learn to integrate a PDF tamper detection API into Laravel and PHP applications to ensure document integrity
Dev.to · Iurii Rogulia
📰
How I Built a Concurrency-Safe Reservation System
Learn how to build a concurrency-safe reservation system using FastAPI, PostgreSQL, Redis, and SQLAlchemy to prevent race conditions
Dev.to · Rahul Chaduvula
📰
The Object in Your Field Is Not the Object You Wrote
Understand how @Transactional works and why it may silently fail due to proxy classes, and learn how to troubleshoot and resolve these issues
Medium · Programming
📰
I built an offline CLI that audits a legacy PHP app in one command — and shows you the fix
Learn how to build an offline CLI tool to audit legacy PHP apps and get fixes with one command
Dev.to · getobserver

Chapters (7)

Introduction: Modernization with AI
0:28 The Modernization Challenge
1:05 Introducing Asset Manager Application
1:57 Why This App Needs Modernization
2:21 GitHub Copilot App Modernization Tool
2:46 Running the Assessment Report
3:04 Understanding Assessment Res
Up next
Indian Express Editorial Analysis by Chandan Sharma - 1 JULY 2026 | UPSC Current Affairs 2026
StudyIQ IAS
Watch →