Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Transferencia de aplicaciones de Windows a contenedores
Descripción general de
Según la encuesta anual de 2021 de la CNCF
Beneficios en términos de costos
La siguiente infografía muestra los ahorros de costos que una empresa puede lograr al consolidar sus aplicaciones de ASP.NET Framework en instancias de Amazon Elastic Compute Cloud (Amazon EC2) según una recomendación de evaluación de AWS optimización y licencias (AWS OLA
La AWS OLA recomendó que la empresa hiciera una transición a instancias t3.small individuales. La empresa podría lograr estos ahorros poniendo en marcha siete aplicaciones de ASP.NET en servidores en las instalaciones, como se muestra en el siguiente análisis de utilización del rendimiento.
Un análisis más detallado reveló que la empresa podría ahorrar aún más en costos poniendo en marcha sus cargas de trabajo en contenedores. Los contenedores disminuyen la carga que el sistema operativo ejerce sobre recursos como la CPU, la RAM y el almacenamiento en disco (se explica en la siguiente sección). En este escenario, la empresa podría unificar las siete aplicaciones en una sola instancia t3.large y aún disponer de 3 GB de RAM libres. La migración a contenedores puede ayudar a la empresa a lograr un ahorro promedio del 64 por ciento en costos de cómputo y almacenamiento al usar contenedores en lugar de Amazon EC2.
Recomendaciones de optimización de costos
En la siguiente sección, se ofrecen recomendaciones para optimizar los costos mediante la unificación de aplicaciones y el uso de contenedores.
Reduzca su EC2 huella de Windows en Amazon
Los contenedores de Windows pueden reducir el espacio que EC2 ocupa Windows en Amazon al permitirle consolidar más aplicaciones en menos EC2 instancias. Suponga, por ejemplo, que tiene 500 aplicaciones ASP.NET. Si ejecutas un núcleo por aplicación para Windows en Amazon EC2, eso equivale a 500 instancias de Windows (t3.small). Si presupone una proporción de 1:7 (que puede aumentar considerablemente según el tipo y el tamaño de la EC2 instancia) para usar contenedores de Windows (con t3.large), solo necesitará aproximadamente 71 instancias de Windows. Esto representa una disminución del 85,8 por ciento en su EC2 presencia de Windows en Amazon.
Reducción de los costos asociados a las licencias de Windows
Si licencia una instancia de Windows, no tiene que licenciar los contenedores que se ponen en marcha en esa instancia. Como resultado, la unificación de las aplicaciones de ASP.NET mediante contenedores de Windows puede reducir considerablemente los costos asociados a las licencias de Windows.
Reducción del espacio de almacenamiento
Cada vez que lanzas una EC2 instancia nueva, creas y pagas un nuevo volumen de Amazon Elastic Block Store (Amazon EBS) para alojar el sistema operativo. Cuando este se escala, el costo también aumenta. Si usa contenedores, puede reducir los costos de almacenamiento porque todos los contenedores comparten el mismo sistema operativo base. Además, los contenedores utilizan el concepto de capas para reutilizar partes inmutables de una imagen de contenedor en todos los contenedores en marcha basados en esa imagen. En el ejemplo anterior, todos los contenedores usan .NET Framework y, por lo tanto, todos comparten la capa intermedia e inmutable de ASP.NET Framework.
Migre end-of-support los servidores a contenedores
El soporte para Windows Server 2012 y Windows Server 2012 R2 finalizó el 10 de octubre de 2023. Puede migrar las aplicaciones que se ponen en marcha en Windows Server 2012 o versiones anteriores agrupándolas en contenedores para que funcionen en nuevos sistemas operativos. De esta forma, evita poner en marcha sus aplicaciones en sistemas operativos que no cumplen con los requisitos y, al mismo tiempo, aprovecha la rentabilidad, la reducción de riesgos, la eficiencia operativa, la velocidad y la agilidad que ofrecen los contenedores.
Una advertencia a tener en cuenta a la hora de adoptar este enfoque es si la aplicación requiere requisitos específicos APIs relacionados con la versión del sistema operativo que se utiliza actualmente (COM Interop, por ejemplo). En este caso, debe probar a actualizar la aplicación a una versión más reciente de Windows. Los contenedores de Windows adaptan su imagen de contenedor base (por ejemplo, Windows Server 2019) a la del sistema operativo del host del contenedor (por ejemplo, Windows Server 2019). Las pruebas y la transferencia a contenedores pueden facilitar las actualizaciones del sistema operativo en el futuro cambiando la imagen base de su Dockerfile e implementándola en un conjunto nuevo de hosts que usen la última versión de Windows.
Eliminación de las licencias y las herramientas de administración de terceros
La administración de su flota de servidores requiere el uso de varias herramientas de operación del sistema de terceros para administrar los parches y la configuración. Esto puede hacer que la administración de la infraestructura sea compleja y, a menudo, incurra en costos asociados al uso de licencias de terceros. Si utilizas contenedores AWS, no necesitas administrar nada desde el punto de vista del sistema operativo. El tiempo de ejecución de los contenedores administra los contenedores. Esto significa que el host subyacente es efímero y se puede reemplazar fácilmente. Puede poner en marcha sus contenedores sin necesidad de administrar directamente el host del contenedor. Además, puedes usar herramientas gratuitas, como acceder fácilmente AWS Systems Manager Session Manager al host y solucionar problemas.
Mejora del control y de la portabilidad
Los contenedores le proporcionan un control más detallado sobre los recursos del servidor, como la CPU y la RAM, que sobre EC2 las instancias. Por EC2 ejemplo, puedes controlar la CPU y la RAM seleccionando una familia de instancias, un tipo de instancia y opciones de CPU. Sin embargo, con los contenedores, puede definir exactamente la cantidad de CPU o RAM que desea asignar a un contenedor en las definiciones de tareas de ECS o a los pods de Amazon EKS. De hecho, le recomendamos que especifique la memoria y la CPU de los contenedores para los contenedores de Windows. Este nivel de granularidad aporta beneficios en términos de costos. Observe el siguiente código de ejemplo:
json { "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/demo-service:1", "containerDefinitions": [ { "name": "demo-service", "image": "mcr.microsoft.com/dotnet/framework/samples:aspnetapp-windowsservercore-ltsc2019", "cpu": 512, "memory": 512, "links": [], "portMappings": [ { "containerPort": 80, "hostPort": 0, "protocol": "tcp" } ],
Aceleración de la innovación
El uso de contenedores facilita la automatización de las fases del ciclo de vida del desarrollo, que incluyen la creación, las pruebas y la implementación de aplicaciones. Si automatiza estos procesos, sus equipos de desarrollo y operaciones dispondrán de más tiempo para centrarse en la innovación.
Reducción del TCO
El uso de contenedores suele reducir la dependencia que se tiene de las herramientas de administración de licencias y protección de puntos de conexión. Como los contenedores son unidades de computación efímeras, puede automatizar y simplificar las tareas de administración, como la aplicación de parches, el escalado y las copias de seguridad y la restauración. Esto puede reducir el costo total de propiedad de la administración y del funcionamiento de las cargas de trabajo basadas en contenedores. Los contenedores son más eficientes en comparación que las máquinas virtuales porque permiten maximizar la ubicación de las aplicaciones para aumentar la utilización de los recursos de infraestructura de dichas aplicaciones.
Cierre de brecha de habilidades
AWS ofrece programas y jornadas de inmersión para capacitar a los equipos de desarrollo de clientes en materia de contenedores y DevOps tecnología. Esto incluye capacitación y asesoramiento prácticos.
Refactorización a .NET 5+ y uso contenedores de Linux
Si bien puede reducir los costos transfiriendo sus aplicaciones de .NET Framework a contenedores, puede ahorrar aún más si refactoriza las aplicaciones de .NET heredadas para convertirlas en alternativas nativas en la nube en AWS.
Eliminación de los costos asociados al uso de licencias
La refactorización de su aplicación de .NET Framework en Windows a .NET Core en Linux supone un ahorro de costos de aproximadamente un 45 %.
Acceso a las mejoras más recientes
Al refactorizar sus aplicaciones de .NET Framework en Windows a .NET Core en Linux, tendrá acceso a las mejoras más recientes, como Graviton2. Graviton2 ofrece una relación rendimiento-precio un 40 % superior que las instancias comparables.
Mejora de la seguridad y del rendimiento
La refactorización de la aplicación de .NET Framework en Windows a .NET Core en contenedores de Linux mejora la seguridad y el rendimiento. Esto se debe a que obtiene los parches de seguridad más recientes, se beneficia del aislamiento de los contenedores y tiene acceso a nuevas características.
Utilice contenedores de Windows en lugar de poner en marcha muchas aplicaciones en una sola instancia de IIS
Tenga en cuenta las siguientes ventajas de usar contenedores de Windows en lugar de ejecutar varias aplicaciones en una instancia de EC2 Windows con Internet Information Services (IIS):
-
Seguridad: los contenedores proporcionan un nivel de seguridad incorporado que no se puede lograr mediante el aislamiento de IIS. Si un sitio web o aplicación de IIS se ve comprometido, todos los demás sitios alojados quedan expuestos y se vuelven vulnerables. La fuga de contenedores es poco frecuente y es una vulnerabilidad más difícil de explotar que hacerse con el control de un servidor a través de una vulnerabilidad web.
-
Flexibilidad: la capacidad de poner en marcha contenedores de forma aislada durante el proceso y disponer de su propia instancia se traduce en opciones de red más detalladas. Los contenedores también ofrecen métodos de distribución complejos en muchas EC2 instancias. Estas ventajas no se obtienen cuando se unifican las aplicaciones en una sola instancia de IIS.
-
Sobrecarga administrativa: la indicación del nombre del servidor (SNI) genera una sobrecarga que requiere administración y automatización. Además, debe lidiar con las operaciones de administración habituales del sistema operativo, como la aplicación de parches, la solución de problemas de BSOD (si no se implementa el escalado automático), la protección de puntos de conexión, etc. Configurar sitios de IIS de acuerdo con las prácticas recomendadas en materia de seguridad
es una actividad continua y laboriosa. Es posible que incluso tenga que configurar niveles de confianza , lo que también aumenta la sobrecarga administrative. Los contenedores están diseñados para no tener estado y ser inmutables. En última instancia, sus implementaciones son más rápidas, seguras y repetibles si en su lugar utiliza contenedores de Windows.
Siguientes pasos
Invertir en una infraestructura moderna para ejecutar sus cargas de trabajo heredadas aporta enormes beneficios a su organización. AWS Los servicios de contenedores facilitan la administración de la infraestructura subyacente, ya sea en las instalaciones o en la nube, para que pueda centrarse en la innovación y en las necesidades de su empresa. Casi el 80 por ciento de todos los contenedores de la nube funcionan en la AWS actualidad. AWS proporciona un amplio conjunto de servicios de contenedores para prácticamente todos los casos de uso. Para empezar, consulte Contenedores en AWS
Recursos adicionales
-
Cost Optimization Checklist for Amazon ECS and AWS Fargate
(Blog de AWS ) -
Optimización de costos para Kubernetes
en (Blog) AWSAWS -
Optimización de los costes informáticos de Kubernetes
con la consolidación de Karpenter (Blog)AWS