Skip to main content

Cloud Modernization in Days using GitHub Copilot

 Working on legacy applications has always been intimidating. When I began a large migration of a .NET  project or an old Java system to Azure, it felt like going back in time to unravel years of decisions made by people who might no longer be there. Before you can write any code, you often spend days or weeks just figuring out how everything fits together. By the time you understand it all, it’s easy to feel your motivation slipping away.

That’s why Microsoft’s new AI-powered tools are such a relief. With the latest GitHub Copilot and Azure features, modernization begins with clarity instead of worry.
One major improvement is how the GitHub Copilot App Modernization Agent reviews legacy code. It highlights outdated frameworks, risky patterns, library issues, and migration risks. It’s like having a teammate who already understands the system. When I use it with Dr. Migrate, which checks the app on Azure’s side, I get a much clearer, faster view of what I’m dealing with.
The next part, rewriting and upgrading, used to be the hardest part. Now, Copilot feels like working with an experienced partner. The agent helps move from .NET Framework to modern .NET or from old Java to newer versions, suggesting code changes and updating dependencies. Clear commit steps make everything easy to follow and review. I decide what to accept, but there’s much less manual effort. On SQL, which is common, the Database Modernization Agent is valuable. It analyzes SQL code deep within the app and adapts it for Azure SQL or PostgreSQL, reducing much of the repetitive rewriting that slows down migration.


The DevOps Pipeline Automation Agent sets up GitHub Actions workflows, adds tests, security, and cloud-ready pipelines. The Containerization Assistant generates Dockerfiles, Kubernetes files, and AKS configs so I can manage most DevOps tasks myself.
Azure is changing as well. The Azure SQL Modernization Agent supports schema compatibility, migration planning, and performance tuning for cloud migration. Azure Copilot shows that future cloud operations will rely more on agents.
The biggest difference isn’t just speed, even though Microsoft says modernization can be four times faster. It’s about feeling confident, not anxious, when modernizing. AI agents don’t replace developers, but they make the work easier. They let you focus on thinking, making decisions, and building the right system for the future.

AI Agents from GitHub Copilot that I recommend:

  • GitHub Copilot App Modernization Agent
  • GitHub Copilot Containerization Assistant
  • GitHub Copilot Database Modernization Agent
  • GitHub Copilot DevOps Pipeline Automation Agent
  • GitHub Copilot Code Review Agent (helps detect deprecated APIs and modernization risks)
  • GitHub Copilot Security Agent (helps fix vulnerabilities during modernization)
  • Azure SQL Modernization Agent
  • Dr. Migrate (Azure app assessment and readiness tool)

Comments

Popular posts from this blog

How to audit an Azure Cosmos DB

In this post, we will talk about how we can audit an Azure Cosmos DB database. Before jumping into the problem let us define the business requirement: As an Administrator I want to be able to audit all changes that were done to specific collection inside my Azure Cosmos DB. The requirement is simple, but can be a little tricky to implement fully. First of all when you are using Azure Cosmos DB or any other storage solution there are 99% odds that you’ll have more than one system that writes data to it. This means that you have or not have control on the systems that are doing any create/update/delete operations. Solution 1: Diagnostic Logs Cosmos DB allows us activate diagnostics logs and stream the output a storage account for achieving to other systems like Event Hub or Log Analytics. This would allow us to have information related to who, when, what, response code and how the access operation to our Cosmos DB was done. Beside this there is a field that specifies what was th...

Can User Technical Profile Influence AI Architecture Decisions?

In the last few days, I ran a small experiment on Devin/Windsurf/Cascade, BMAD, and LLM-based architecture decisions. The initial concern was simple: if an AI coding assistant knows something about the user, for example, that the user is a Java developer or a .NET developer, can this information influence the architecture and technology stack that the AI will propose? This question is important because many companies are starting to use AI tools not only for coding but also for product discovery, architecture, documentation, and technical decision-making. If the AI is influenced by the developer's personal profile, the result may not be fully neutral. It may look like a business or architecture decision, but in reality, it may be partially shaped by the context of the person using the tool. The test was done using BMAD with Devin/Windsurf/Cascade. The scenario was a unified field service operations platform. The task was to let BMAD refine the product, define the architecture and s...

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see...