重新架构为 Linux 容器 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

重新架构为 Linux 容器

通过将.NET Framework 应用程序移植到 .NET Core 或 .NET 6,您可以在多个平台上运行应用程序、降低许可证成本、提高性能和提高可扩展性。

使用案例

此迁移策略在下列任意一个场景中都很有用:

  • 您有足够的资源和时间来重构应用程序。

  • 你可以解析所有 .NET Framework 依赖关系。

  • 您有一个长时间运行的应用程序。

优势

与本地 .NET 应用程序相比,这种迁移方法具有以下好处:

  • 降低总拥有成本 (TCO)

  • 改进了安保和性能

  • 加速创新

  • 转换为云原生应用程序的好处

  • 开源

缺点

  • 重构的工作量和成本

AWS 服务

用于存储容器镜像:

对于编排容器:

AWS Fargate是一个无服务器的 pay-as-you-go 计算引擎,可让您专注于构建应用程序,而无需管理服务器。Fargate 兼容亚马逊 ECS 和 Amazon EKS。

工具

工具 目的 资源
适用于 .NET 的移植 此分析工具扫描 .NET Framework 应用程序并生成 .NET Core 兼容性评估。评估可帮助您更快地将应用程序移植到 Linux。
AWSApp2Container (A2C) A2C 是一个命令行工具,用于将 .NET 和 Java 应用程序现代化为容器化应用程序,只需极少的精力即可对其进行现代化改造。

部署决策

您可以从五个部署选项中进行选择:

  • 如果您想完全控制计算环境的配置,包括内存和存储设置,并控制操作系统补丁:将您的应用程序作为 Linux 容器部署在 EC2 实例上。

  • 如果你想让容器由 Kubernetes 管理并作为无服务器容器运行:使用 Fargate 将你的应用程序作为 Linux 容器部署在 Amazon EKS 上。

  • 如果您希望容器由 Amazon ECS 管理并作为无服务器容器运行:使用 Fargate 将您的应用程序作为 Linux 容器部署在 Amazon ECS 上。

  • 如果您希望容器由 Kubernetes 管理,但又想自己管理容器的计算资源:将您的应用程序作为 Linux 容器部署在 Amazon EKS 上。

  • 如果您希望容器由 Amazon ECS 管理,但又想自己管理容器的计算资源:将您的应用程序作为 Linux 容器部署在 Amazon ECS 上。

Refactoring .NET applications as Linux containers on AWS