AZ-305 Question 208
Select 2A company has a monolithic ASP.NET application backed by an on-premises SQL Server database that relies on stored procedures, triggers, and standard T-SQL. They want to reduce operational overhead by leveraging managed services in Azure but also minimize code changes. Which two migration approaches would best meet their goals?
- A
Migrate the ASP.NET web application to Azure App Service and move the database to Azure SQL Database
- B
Lift and shift the entire solution onto Azure Virtual Machines (Windows Server and SQL Server)
- C
Containerize the ASP.NET application and migrate the database to Azure Cosmos DB
- D
Migrate the ASP.NET application to Azure App Service and migrate the database to Azure SQL Managed Instance
Show answer and explanation
Correct answers: A, D
Explanation
In scenarios where organizations want to reduce infrastructure management overhead (by moving to PaaS) but also preserve existing functionality with minimal changes, Azure App Service plus a managed SQL option is often recommended. Azure SQL Database works if the application relies only on standard T-SQL features, whereas Azure SQL Managed Instance provides nearly full database compatibility. Microsoft documentation, such as the Azure Migration and Modernization Program (https://azure.microsoft.com/en-us/migration/), provides detailed guidance on how to determine the best Azure service based on the application’s compatibility and migration requirements.
- A. Correct.
Option 1: CORRECT. Azure App Service is a PaaS solution that handles application hosting with minimal overhead. Azure SQL Database provides a fully managed relational database service with support for standard T-SQL. If the application does not use SQL Server features unsupported by Azure SQL Database (such as cross-database queries or certain SQL Agent jobs), this is a valid approach with relatively few code changes required.
- B. Incorrect.
Option 2: INCORRECT. While lifting and shifting to Azure Virtual Machines is a straightforward migration path (IaaS), it does not reduce operational overhead because you still need to manage the OS, patching, backups, and high availability at the VM level. This contradicts the requirement to reduce overhead through managed services.
- C. Incorrect.
Option 3: INCORRECT. Containerizing the ASP.NET application and migrating the database to Azure Cosmos DB would require significant code changes. Cosmos DB uses a NoSQL approach, so any existing stored procedures or T-SQL references in the application would need major modifications, conflicting with the goal of minimal code changes.
- D. Correct.
Option 4: CORRECT. Migrating the application to Azure App Service reduces management overhead for the web tier, and using Azure SQL Managed Instance preserves near 100% compatibility with on-premises SQL Server features (like SQL Agent jobs or cross-database queries). This approach is well-suited for minimal refactoring.