Bienvenido a la tercera parte de nuestra serie Navigating Windows Server sobre la finalización del soporte (EOS). Analizaremos las opciones de modernización de EOS mediante contenedores de Windows y, en situaciones en las que la actualización no sea viable, le mostraremos cómo el Programa de migración para final del soporte (EMP) puede ayudar a empaquetar las aplicaciones existentes que se ejecutan en un sistema operativo (SO) en fin de soporte a una nueva versión del sistema operativo en AWS.¡Vamos a sumergirnos!
Cambie la plataforma de las aplicaciones web ASP.NET antiguas a contenedores de Windows
A medida que ayudamos a resolver los problemas de fin de soporte (como se ve en la figura 1) con nuestros clientes, estamos viendo oportunidades de utilizar contenedores de Windows para facilitar la administración de aplicaciones antiguas y monolíticas. Para las aplicaciones web ASP.NET, los contenedores de Windows son la mejor manera de ejecutarlas. Los contenedores son portátiles, escalables y confiables por naturaleza. Al ejecutar aplicaciones web ASP.NET en contenedores de Windows, ya no tendrá que preocuparse por rediseñar o refactorizar su código fuente. Además de abordar los sistemas operativos en fin de soporte de Windows, puede empezar (o continuar) modernizando sus aplicaciones mediante el cambio de plataforma a contenedores de Windows.
- Determine si la aplicación tiene alguna dependencia subyacente del sistema operativo o API de Windows (por ejemplo, la interoperabilidad COM) que impida que la aplicación se mueva a un nuevo sistema operativo.
- Defina un sistema operativo Windows de destino en función de los requisitos de su organización:
- Asegúrese de que su aplicación sea compatible con App2Container (A2C).
- Determinar qué plataforma de orquestación te gustaría utilizar. Amazon ECS y Amazon EKS son las plataformas compatibles para la creación de contenedores de Windows y App2Container.
- Siga los pasos para configurar un equipo de trabajo remoto que ejecute la versión del sistema operativo de destino (Windows Server 2019 o 2022) y extraiga los artefactos de la aplicación del servidor de aplicaciones de origen de 2012.
Encontrará instrucciones paso a paso en el taller de modernización con AWS App2Container. El resultado, como se ve en la figura 2, es la aplicación web.NET modernizada en AWS.
Figura 2. Ejemplo de modernización de .NET a AWS
- Descubra y analice su aplicación.
- Extraiga y almacene su aplicación en contenedores.
- En su equipo de trabajo remoto, ejecute el comando extract para generar un archivo de aplicaciones para la aplicación especificada. Este archivo estará entonces disponible para copiarlo en su máquina de trabajo o especificar su prefijo de Amazon S3.
- Ejecute el comando containerize para crear su DockerFile.
- Implemente su aplicación en contenedores.
- Ajuste la configuración de implementación para incluir artefactos de Amazon ECS o Amazon EKS. A continuación, ejecute la implementación de la aplicación para enviar la imagen del contenedor a Amazon Elastic Container Registry (Amazon ECR) e implementar la aplicación en Amazon ECS o Amazon EKS.
- Una vez que su aplicación esté correctamente agrupada en contenedores y asegurada para el acceso público, estará listo para planificar su implementación de producción. App2Container permite crear canalizaciones de integración y entrega continua (CI/CD) continuas para facilitar el despliegue de las aplicaciones. App2Container admite varias herramientas de CI/CD, como CodePipeline, Jenkins y Microsoft Azure DevOps. Para ver la implementación paso a paso de una canalización de CI/CD mediante App2Container, consulte la entrada del blog Generación de canalizaciones de CI/CD para aplicaciones ASP.NET en contenedores mediante AWS App2Container.
- Impulsar la producción.
- Planifique el cambio de URL públicas de la aplicación antigua que se ejecuta en Windows Server 2012 al nuevo balanceador de carga que inicia la implementación de la aplicación en contenedores.
- Si la aplicación no depende del sistema operativo, las actualizaciones a futuras versiones del sistema operativo serán tan sencillas como implementar un nuevo servidor de compilación con el último sistema operativo Windows, cambiar la línea FROM en el DockerFile de la aplicación (como se ve en la figura 3), crear una nueva imagen de contenedor (como se ve en la figura 4) y realizar una actualización continua.
Nota: Antes de implementarlo en producción, es necesario realizar las pruebas adecuadas para garantizar que no se produzcan cambios drásticos en el sistema operativo subyacente.
EOS ES:

Figura 3. Imagen base del contenedor EOS OS
Nuevo sistema operativo:

Figura 4. Nueva imagen base de OS Container en DockerFile
Para comprender mejor el proceso paso a paso del uso de App2Container, consulte la documentación pública de App2Container. Si desea profundizar en un caso de uso que también migre su base de datos a Amazon Relational Database Service (Amazon RDS) para SQL Server, consulte el taller de modernización con AWS App2Container.
Refactor: de .NET Framework a una versión moderna de .NET
Si su organización está preparada para refactorizar su código de .NET Framework a una versión moderna de .NET, puede aprovechar el Asistente de portabilidad para .NET y el kit de herramientas de AWS para la refactorización de .NET. Al migrar a .NET 6+, desbloqueas la posibilidad de ejecutar tu código .NET en contenedores de Linux.
Limpieza
Dado que este blog es una guía práctica, no necesitará realizar ningún paso de limpieza. El enfoque paso a paso le muestra exactamente cómo proceder con la actualización.
Resumen
En esta entrada de blog, guiamos a nuestros lectores sobre cómo actualizar y modernizar su aplicación web .NET mediante AWS App2Container. En la siguiente entrada de esta serie de blogs, analizaremos cómo utilizar AWS Application Migration Service para actualizar un sistema operativo Windows.
Tenga en cuenta que esta serie de blogs de cuatro partes ha analizado y presentado muchas opciones para abordar el fin de soporte y cómo AWS puede ayudarlo a abordar estos problemas con el uso de tecnología, herramientas y expertos.
Si necesita ayuda con la actualización, póngase en contacto con AWS para abordar su situación o necesidades específicas de EOS.