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