Windows 工作负载的现代化 - 使用 AWS Transform 批量转换 .NET 和 SQL Server

解析使用 AWS Transform for Windows 对 .NET Framework 和 SQL Server 进行现代化改造。介绍全栈转换、波次迁移方式和成本削减效果。

Windows 工作负载现代化迫在眉睫的原因

企业核心系统中运行着大量使用 .NET Framework 4.x 构建的 Web 应用程序、Windows 服务和 SQL Server 数据库。这些只能在 Windows Server 上运行,加之 Windows Server 2012 R2 支持终止(2023 年 10 月),许可成本(Windows Server CAL、SQL Server 许可)占运维费用的很大比例。此外,.NET Framework 已被微软停止新功能开发,向 .NET(原 .NET Core)迁移是获得最新功能和性能改进的必要条件。

全栈转换的架构

AWS Transform 连接源代码仓库(最多数百万行 .NET 代码库)和 SQL Server,自动分析应用程序和数据库的依赖关系。基于分析结果创建现代化波次(转换组),从依赖关系少的组开始分阶段推进转换。每个波次协调执行以下转换:(1) .NET Framework 到 .NET 的转换:将 ASP.NET Web Forms/MVC 转换为 ASP.NET Core,将 Windows 依赖的 API 替换为跨平台 API。(2) SQL Server 到 Aurora PostgreSQL 的迁移:自动转换架构、存储过程和数据。(3) 部署流程的容器化:生成 Dockerfile 和 ECS 任务定义。

SQL Server 迁移的详细与注意事项

从 SQL Server 到 Aurora PostgreSQL 的转换是 AWS Transform 中特别复杂的处理。架构转换中自动执行数据类型映射(如 NVARCHAR → VARCHAR、DATETIME2 → TIMESTAMP WITH TIME ZONE、UNIQUEIDENTIFIER → UUID)。存储过程从 T-SQL 转换为 PL/pgSQL,但游标处理、临时表、动态 SQL 等 T-SQL 特有语法可能需要个别处理。Transform 将这些转换困难的部分标记为需要手动审查的项目,开发者可以集中精力处理真正需要人工判断的部分。

Transform for Windows 的定价

AWS Transform for Windows 的定价基于转换目标应用程序数量和复杂度的个别报价。包含 .NET Framework 到 .NET 8 的转换和 SQL Server 到 Aurora PostgreSQL 迁移的全栈转换,与手动迁移工时(数月至 1 年)相比可大幅缩短工期。转换后不再需要 Windows Server 和 SQL Server 的许可成本,Linux + Aurora 的组合在很多情况下可将年度基础设施成本削减 50% 至 70%。

总结 - Windows 现代化的指南

AWS Transform for Windows 全栈批量转换 .NET Framework、SQL Server 和部署流程,以传统方式 5 倍的速度执行现代化。波次方式的分阶段转换可以在控制风险的同时稳步推进迁移。除了 Windows Server 和 SQL Server 的许可成本削减(最高 70%)外,Linux 容器化带来的可扩展性提升和开源生态系统的活用是长期优势。