Blog de Amazon Web Services (AWS)
Cómo actualizar y modernizar Microsoft Windows Server 2012 con contenedores de Windows en AWS
Introducción
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.
Figura 1. Enfoques de migración y modernización: Rehost, Replatform, Refactor
Modernización de las aplicaciones de .NET Framework con App2Container
Para obtener más información sobre estos requisitos previos, consulte la documentación aquí.
- 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:
- NOTA: Amazon Elastic Container Service (Amazon ECS) y Amazon Elastic Kubernetes Service (Amazon EKS) son las dos plataformas de orquestación compatibles para ejecutar Windows Containers. Le recomendamos que actualice a Windows Server 2022, pero las opciones informáticas comunes son compatibles con Windows Server 2019 y 2022. Windows Server 2016 solo se admite en el tipo de lanzamiento ECS Amazon Elastic Cloud Compute (Amazon EC2).
- 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.
- Si lo desea, puede configurar un bucket de Amazon Simple Storage Service (Amazon S3) y un entorno de prueba en el que la aplicación funcione completamente, de modo que pueda orientarla con las herramientas de CLI de App2Container. De lo contrario, los artefactos de la aplicación se almacenarán localmente en el servidor que ejecuta 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.
- Ejecute el análisis de App2Container que registra todos los sitios web del servidor de información de Internet (IIS) y los servicios de Windows (Windows) que se ejecutan en el servidor de aplicaciones.
- Revise el archivo de salida del análisis y, si es necesario, ajuste la imagen base del contenedor para que sea el sistema operativo de destino deseado. (Por ejemplo)
- mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022 — Imagen .NET Framework 4.8 de Windows Server core 2022). Esto debería configurarse automáticamente en función del análisis de la configuración de IIS y del sistema operativo.
- 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.
- Parte 1: Cómo actualizar manualmente Microsoft Windows Server 2012 en AWS
- Parte 2: Cómo automatizar las actualizaciones de Microsoft Windows Server con AWS Systems Manager
- Parte 4: Cómo actualizar Microsoft Windows Server 2012 con AWS Application Migration Service
Si necesita ayuda con la actualización, póngase en contacto con AWS para abordar su situación o necesidades específicas de EOS.
Este artículo se tradujo del Blog Post de AWS en Inglés.
Acerca de los autores
Mike Adams es un especialista mundial en comercialización de AWS. Su objetivo es migrar las cargas de trabajo de Microsoft a AWS y mostrar a los clientes cómo pueden lograr eficiencias operativas y de costos. Antes de trabajar en AWS, Mike ocupó puestos de marketing de productos en Ivanti, VMware, Symantec y VERITAS Software. Mike comenzó su carrera como analista industrial en Giga Information Group (que ahora forma parte de Forrester Research).
Bill Pfeiffer es arquitecto de soluciones sénior en Amazon Web Services. Bill se centra en ayudar a los clientes a diseñar, implementar y desarrollar una infraestructura segura y con costos optimizados. A Bill le apasiona ayudar a los clientes a resolver los desafíos empresariales con soluciones técnicas. Fuera del trabajo, a Bill le gusta viajar por los Estados Unidos con su familia en su autocaravana y competir en las Spartan Races de ultramaratones.
GianPaolo Albanese es un arquitecto de soluciones especializado en Microsoft para Amazon Web Services con sede en el área de Nueva York. GP se centra en ayudar a los clientes con sus arquitecturas, migraciones y optimización de Windows a la nube de AWS. GP ha sido un profesional de TI con más de tres décadas de experiencia en la industria FinTech, especializado en la gestión de infraestructuras a gran escala, migraciones y actividades de modernización. En los últimos dos años, GP ha centrado su energía en ayudar a los clientes a abordar los desafíos del final del soporte.
Revisores
JuanMa Silva quien es arquitecto de soluciones con especialidad en Microsoft para México y MCO. Cuenta con 15 años de experiencia en la industria de IT, en posiciones de Sysadmin, consultor para ayudar a migrar clientes a la nube y modernización de aplicaciones, soporte aplicaciones de misión critica basados en tecnologia Microsoft.