Refactorización para usar las versiones más modernas de .NET y migración a Linux - Recomendaciones de AWS

Refactorización para usar las versiones más modernas de .NET y migración a Linux

Descripción general

La modernización de las aplicaciones heredadas de .NET Framework puede ser útil para mejorar la seguridad, el rendimiento y la escalabilidad. Una forma eficaz de modernizar las aplicaciones de .NET Framework es migrarlas a una versión moderna de .NET (6 o superior). Estas son algunas de las principales ventajas de migrar estas aplicaciones a .NET de código abierto:

  • Reducir los costos asociados al uso de licencias de Windows usando un sistema operativo Linux.

  • Aprovechar la disponibilidad de los lenguajes modernos.

  • Obtener un rendimiento optimizado para Linux.

Muchas organizaciones siguen utilizando versiones anteriores de .NET Framework. Esto puede plantear riesgos de seguridad, ya que Microsoft ya no aborda las vulnerabilidades de las versiones anteriores. Microsoft ha dejado de dar soporte a las versiones recientes de .NET Framework 4.5.2, 4.6 y 4.6.1. Es muy importante evaluar los riesgos y beneficios de seguir utilizando las versiones anteriores del marco. Para reducir el riesgo y los costos, puede valer la pena invertir tiempo y esfuerzo en la refactorización a una versión moderna de .NET.

Impacto del costo

Considere utilizar un tipo de instancia de EC2 de uso general (m5), que ofrezca un conjunto equilibrado de recursos de computación, de memoria y de red. Estas instancias son adecuadas para una variedad de aplicaciones, como servidores web, bases de datos medianas y repositorios de código fuente.

Por ejemplo, una instancia m5.xlarge bajo demanda con 4 vCPU y 16 GB de memoria en Windows Server (con licencia incluida) en la región Este de EE. UU. (Norte de Virginia) cuesta 274,48 USD al mes. Los mismos recursos en un servidor Linux cuestan 140,16 USD al mes. En este ejemplo, el costo se reduce en un 49 % al migrar la aplicación de .NET Framework a una versión moderna de .NET y poner en marcha la aplicación en un servidor Linux. El costo puede variar en función de las opciones (por ejemplo, el tipo de instancia, el sistema operativo o el almacenamiento) que elija al seleccionar una instancia de EC2. Puede optimizar aún más los costos mediante Savings Plans o instancias reservadas. Para obtener más información, utilice la Calculadora de precios de AWS para hacer una previsión de los costos. En el caso de las instancias incluidas en Windows, el costo de la licencia es de 0,046 USD por vCPU por hora, independientemente del modelo de precios.

La migración de estas aplicaciones .NET Framework a la versión moderna de .NET requiere un esfuerzo por parte del equipo de desarrollo. Debe evaluar las aplicaciones y sus dependencias para comprobar si son compatibles con la versión de la plataforma de destino. AWS Asistente de portabilidad para .NET es una herramienta de asistencia que analiza las aplicaciones de .NET Framework y evalúa compatibilidad con .NET, lo que le permite portar con mayor rapidez sus aplicaciones para que sean compatibles con Linux. Asistente de portabilidad para .NET identifica las incompatibilidades con .NET, busca sustitutos conocidos y hace una evaluación de la compatibilidad detallada. Tras migrar la solución, debe realizar cambios manuales en el código para que el proyecto se compile correctamente con las dependencias. Esto reduce el esfuerzo manual que implica la modernización de las aplicaciones a Linux. Si su aplicación es compatible con los procesadores ARM, al migrar a Linux podrá utilizar instancias Graviton. Esto puede ser útil para reducir aún más los costos en un 20 %. Para obtener más información, consulte Powering .NET 5 with AWS Graviton2: Benchmarks en el blog de computación de AWS.

Existen otras herramientas, como Kit de herramientas de AWS para la refactorización de .NET y Asistente para la actualización de .NET, que pueden ser de ayuda para migrar aplicaciones heredadas de .NET Framework a la versión moderna de .NET.

Recomendaciones de optimización de costos

Para migrar aplicaciones de .NET Framework, haga lo siguiente:

  1. Requisitos previos: para utilizar Asistente de portabilidad para .NET, debe instalar .NET 5 o una versión posterior en la máquina en la que va a analizar el código fuente de la aplicación. Los recursos de la máquina deben tener una velocidad de procesamiento mínima de 1,8 GHz, 4 GB de memoria y 5 GB de espacio de almacenamiento. Para obtener más información, consulte Prerequisites en la documentación de Asistente de portabilidad para .NET.

  2. Evaluación: descargue Asistente de portabilidad para .NET como un archivo procesable (de descarga). Puede descargar e instalar la herramienta en su máquina para iniciar la evaluación de sus aplicaciones. La página de evaluación contiene proyectos, API y paquetes portados que son incompatibles con las versiones modernas de .NET. Por este motivo, se producen errores de compilación en la solución después de la evaluación. Puede ver o descargar los resultados de la evaluación en un archivo CSV. Para obtener más información, consulte Port a solution en la documentación de Asistente de portabilidad para .NET.

  3. Refactorización: después de evaluar la aplicación, puede migrar sus proyectos a la versión del marco de trabajo de destino. Al migrar una solución, Asistente de portabilidad modificará los archivos del proyecto y parte del código. Puede consultar los registros para revisar los cambios en el código fuente. En la mayoría de los casos, el código requerirá un esfuerzo adicional para completar la migración y las pruebas de cara a la producción. Según la aplicación, algunos de los cambios pueden incluir el marco de la entidad, la identidad y la autenticación. Para obtener más información, consulte Port a solution en la documentación de Asistente de portabilidad para .NET.

Este es el primer paso para modernizar sus aplicaciones a contenedores. La modernización de las aplicaciones de .NET Framework y su almacenamiento en contenedores de Linux puede implicar una serie de factores empresariales y técnicos. Uno de los factores clave es la reducción del costo total de propiedad al pasar de un sistema operativo Windows a uno Linux. Esto reduce los costos de licencia al migrar la aplicación a una versión multiplataforma de .NET y a contenedores para optimizar la utilización de los recursos.

Cuando la aplicación se haya migrado a Linux, podrá utilizarla AWS App2Container para almacenarla en contenedores. App2Container utiliza Amazon ECS o Amazon EKS como servicios de punto de conexión en los que puede implementar directamente. App2Container proporciona todos los artefactos de infraestructura como código (IaC) necesarios para implementar y almacenar en contenedores sus aplicaciones cuantas veces haga falta.

Consideraciones y recursos adicionales