Simon Bisson
Contributing Writer

Azure’s new AI modernization tools

analysis
Mar 31, 20267 mins

Microsoft has extended its Azure Copilot to help with application migration and modernization.

Robot hand and human hand extend toward either side of a virtual touchscreen to click a humanoid figure on the screen.
Credit: Summit Art Creations / Shutterstock

Microsoft has given Azure many hats: a serverless platform for distributed applications, a host for security and identity services, a place for big data, and an alternative to running your own data centers and infrastructure.

It’s this last one that’s often forgotten since much of the thinking about cloud platforms focuses on new tools and technologies instead of the old faithful applications that have been lifted and shifted to the cloud. The lift-and-shift process has become increasingly important as a tool to help get rid of servers and also make some headway against the perennial problem of technical debt.

Solving technical debt

Building new applications is easy, but it’s hard to keep them up to date. The budget for maintenance never quite covers the necessary work, so applications and servers keep running until it’s impossible to keep them going. Historically that’s meant aged mainframes running for more than 50 years, or a nuclear power plant being controlled from an emulation running in another emulation on top of a stack of virtual machines.

That’s the extreme end of technical debt—software archaeology rather than software engineering. Day-to-day technical debt is perhaps better thought of as a drag on business, code that doesn’t quite fit the current state of a business process, requiring manual workarounds that slow things down but allow the applications to keep running. There’s associated compounding risk as applications, operating systems, storage, and networks drift away from security baselines, dropping out of support, unpatched because any updates could stop the business from operating.

Migrating to the cloud can help, but too often it’s a matter of simply replicating a physical infrastructure in virtual machines on an IaaS platform. Yes, hyperscale cloud PaaS features could solve problems, as well as using automated updates and upgrades to deploy the latest features and keep applications more secure.

Automating cloud migrations

Microsoft has offered several generations of tools to migrate applications to the cloud, mostly focused on finding the right size Azure virtual machines and the right virtual network appliances and topography, as well as importing data into cloud storage. Microsoft has provided useful ways to move applications to the cloud, but the company hasn’t helped you modernize code or infrastructure. Enterprises are just replicating technical debt in Azure instead of on their own servers.

Even if you use these tools, a migration can take months of planning and testing, and the disconnect between IT teams focusing on infrastructure and development teams focusing on the code means there’s no shared view of the entire task.

How then can Microsoft break down the barriers between teams and use migration as an opportunity to help modernize software and reduce technical debt?

Azure Copilot for migration and modernization

The latest version of the Azure Copilot recently launched, building on earlier releases and the agent model implemented in the closely related GitHub Copilot. It includes a new migration agent as part of its library of tools, using grounded AI to guide you through a simultaneous process of migrating and upgrading applications. The intent is to speed up the process by using your current environment and the capabilities of the Azure platform to define and implement the IT strategies to deliver a modern cloud infrastructure.

With the Azure Copilot handling infrastructure, the modernization tools in GitHub Copilot’s agents can help work through the necessary steps to update the code, adding support for Azure capabilities and modern cloud-native architectures.

Key to both approaches is a process of fine-tuning and grounding that uses Azure’s well-defined APIs and the constraints of domain-specific, software-defined infrastructure through tools like Bicep, Terraform, and the older but still critical Azure Resource Manager. Defining and implementing an IT strategy is one of the things an AI agent should be good at. Working alongside infrastructure and application architects, it defines the current state of an application, the target, where the modernized version will run, and what tools it will need. It then uses spec-driven development methodology to treat that gap as a directed graph that will first define an infrastructure and then update the code.

Having a known state at both ends of the process keeps risk to a minimum, though of course you need to always keep humans in the loop. It’s not a process that can be fully automated; instead, it’s an approach that speeds tasks up and reduces the necessary effort. In one early test, a customer was able to reduce this by 70%.

Working with cooperating agents

Microsoft is using this as an example of how agents can cooperate and help different disciplines communicate effectively. Reports generated by GitHub Copilot can be used by Azure Copilot to identify possible issues and bridge the gaps between software modernization and migration plans. The resulting insights help teams prioritize necessary work and improve the specifications and strategy that guide the work.

Using the migration agent from Azure Copilot is straightforward, as it builds on existing best practices and processes. However, don’t expect it to support all the possible migration scenarios from day 1. The current preview release is designed to help move specific infrastructures to Azure by analyzing data from the existing Azure Migrate tools.

Two key scenarios are supported in this first version: moving VMware infrastructures, and working with existing environments that use Hyper-V and physical servers. In both cases, you’ll need to run the existing Azure Migrate tools to collect the data the agent will use to plan a migration. This will require installing Azure Migrate collectors or the free RVTools utility. Microsoft provides an Azure Migrate appliance that can be deployed inside either VMware or Hyper-V environments (or on bare-metal servers) to handle discovery, which helps gather and process this data.

The migration agent will run discovery for you or work with your own discovery data. Once you have data, you can use prompts to assess your infrastructure, check for servers that need upgrades, and build a plan for a lift-and-shift exercise. You can even get cost analysis and ROI reports. Other options help add modernization options, for example, moving data to Azure servers. Then you can start building the base infrastructure for a migration and start deploying Azure resources.

Agents connect ops and dev teams

A conversational approach to working with the agent through Azure Copilot can help financial and business team members understand the effectiveness of a migration, as they can get access to costs and timescales through familiar tools. System administrators will be able to quickly get the information they need, while development teams will be able to understand what code changes might be needed to support a new infrastructure. Having Azure Copilot as a hub for these conversations can help reduce risks and keep projects on track. The information needed for good decisions is now easily accessible.

At the same time, you can have the GitHub modernization agent from the GitHub CLI update the code you’re running on those servers, using the tool to guide updates to .NET and Java. The agent will analyze code and produce a modernization plan to guide development teams, or it can automate the process of updating and testing your code. The migration agent is designed to look for issues that might arise when migrating to the cloud, so it’s an important component of a suite of migration tools.

With these new AI-powered tools, you’re able to speed up the process of moving complete applications to the cloud, with an ROI assessment, a migration plan, and the necessary updates to what may be outdated code. With new infrastructure and code, you’re able to start dealing with long-term technical debt and adding new features that can improve business performance and offer new services both inside and outside your organization.

Simon Bisson

Author of InfoWorld's Enterprise Microsoft blog, Simon Bisson prefers to think of “career” as a verb rather than a noun, having worked in academic and telecoms research, as well as having been the CTO of a startup, running the technical side of UK Online (the first national ISP with content as well as connections), before moving into consultancy and technology strategy. He’s built plenty of large-scale web applications, designed architectures for multi-terabyte online image stores, implemented B2B information hubs, and come up with next generation mobile network architectures and knowledge management solutions. In between doing all that, he’s been a freelance journalist since the early days of the web and writes about everything from enterprise architecture down to gadgets. He is the author of Azure AI Services at Scale for Cloud, Mobile, and Edge: Building Intelligent Apps with Azure Cognitive Services and Machine Learning.

More from this author