Ir al contenido

Containerización en Azure: una comparación de servicios

Microsoft logo

La containerización es una opción interesante para alojar tu software. Esta estrategia es especialmente adecuada para los escenarios de migración lejos del IaaS tradicional (máquinas virtuales). Algunas de las ventajas de cambiar a contenedores son: la portabilidad, la minimización de los cambios de código necesarios y la escalabilidad.

Si decides optar por la vía de los contenedores y utilizas Microsoft Azure, hay bastantes opciones disponibles para ejecutar contenedores. En este artículo, enumeramos algunas de las opciones más populares y las comparamos en cuanto a facilidad de uso, capacidad y coste. Ten en cuenta que, si bien todas estas opciones están disponibles para desplegar aplicaciones .NET Core y .NET 5+, las aplicaciones .NET Framework requieren contenedores Windows y no pueden ejecutarse en Linux.

Azure App Service

Azure App Service es uno de los servicios más antiguos disponibles en Azure. Ofrece la posibilidad de ejecutar una sola aplicación en un entorno totalmente gestionado. Microsoft ha añadido la opción de desplegar un único contenedor Docker a un App Service, lo que lo convierte en una de las opciones más sencillas cuando se desea ejecutar una única aplicación en contenedor. Las opciones de escalado están disponibles a través del plan de App Service, que puede escalar a múltiples instancias del mismo App Service. Las imágenes de contenedores pueden recuperarse de ACR (Azure Container Registry), Docker Hub o un repositorio privado.

  • Complejidad y facilidad de uso: Desplegar un contenedor en un App Service es muy sencillo, y aparte de poder crear un archivo Docker, no se requieren más conocimientos de gestión de contenedores.
  • Capacidad: Un App Service no proporciona nada más que la capacidad de ejecutar un solo contenedor. Los servicios Kubernetes y otras opciones de gestión no están disponibles.
  • Coste: Los App Services se ejecutan en un App Service Plan, que proporciona recursos informáticos dedicados y reservados. El precio se basa en los recursos reservados, no en el uso.
  • Cuándo utilizarlo: Aplicaciones de larga duración que requieren contenedores individuales (aplicaciones web, API’ s). Cargas de trabajo continuas para aprovechar al máximo los precios mensuales. App Service también es una buena opción para aquellos que acaban de empezar con su primera aplicación en contenedores.

Instancias de contenedores Azure (ACI)

La instancia de contenedor de Azure (ACI) es posiblemente la forma más sencilla de poner en marcha un solo contenedor o un grupo de contenedores (pod) en Azure. Mientras que el servicio de aplicaciones y el tiempo de ejecución de funciones se centran en determinados tipos de cargas de trabajo, la instancia de contenedor puede utilizarse para todo tipo de aplicaciones diferentes. La ACI es una solución de contenedores ligera, que permite despliegues rápidos y una fácil limpieza.

  • Complejidad y facilidad de uso: El despliegue en ACI es relativamente sencillo. El uso de varios contenedores en el mismo grupo requiere cierto conocimiento de las plantillas ARM y de las interacciones contenedor-contenedor.
  • Capacidad: ACI proporciona un tiempo de ejecución de contenedores muy básico. Esto lo hace muy rápido y rentable, pero tiene el coste de la ausencia de características como el escalado y el equilibrio de carga.
  • Coste: Los contenedores de ACI se facturan por uso (núcleos de CPU, memoria), por lo que son la solución más rentable en escenarios en los que se crean y eliminan contenedores de corta duración con frecuencia.
  • Cuándo utilizarlos: Procesamiento de trabajos por lotes, trabajos de construcción, tareas de automatización; aplicaciones simples de corta duración.

Servicio Azure Kubernetes (AKS)

Kubernetes se ha convertido en la herramienta de gestión de contenedores por excelencia en los últimos años, y no es de extrañar que Microsoft haya añadido una oferta basada en Kubernetes a su cartera. El servicio Azure Kubernetes ofrece la experiencia completa y añade una fácil integración con Azure Files and Disks, Log Analytics y Azure Active Directory. AKS proporciona una solución gestionada; no tienes que pensar en las máquinas subyacentes en las que se ejecuta tu clúster. Sin embargo, la responsabilidad de administrar el clúster recae sobre ti. La interacción directa con la API de Kubernetes es posible y necesaria para la administración del clúster.

  • Complejidad y facilidad de uso: La administración de Kubernetes requiere conocimientos especializados, y muchas acciones sólo pueden realizarse a través de la interfaz de línea de comandos. AKS ofrece la mayor libertad de configuración y uso, pero esto se traduce posiblemente en la carga de trabajo administrativo más intensa de todas las alternativas analizadas en este artículo.
  • Capacidad: AKS proporciona un clúster completo de Kubernetes, mejorado por las integraciones con varios otros servicios de Azure. También dispone de amplias opciones de red.
  • Coste: Para alojar un solo contenedor, AKS es una opción más cara en comparación con las alternativas previamente discutidas. Cuando se alojan paisajes más complejos, el coste puede gestionarse mejor utilizando las características proporcionadas por Kubernetes (por ejemplo, el escalado).
  • Cuándo utilizarlo: Paisajes complejos que requieren orquestación de contenedores, escalado, configuración avanzada o ejecución de cargas de trabajo especializadas.

Azure RedHat OpenShift (ARO)

RedHat OpenShift es la plataforma de contenedores más extensa disponible en este momento. Es una plataforma completa que ofrece soluciones de contenedores, integración, seguridad y monitorización. OpenShift está disponible en varias plataformas, y la versión de Azure se llama Azure RedHat OpenShift o ARO.

  • Complejidad y facilidad de uso: ACA es un paquete de Kubernetes creado por Microsoft con una selección de añadidos de uso frecuente. Microsoft se encarga de la integración y el correcto funcionamiento de estos añadidos, a costa de algunas de las características más avanzadas de Kubernetes y del acceso a la API de Kubernetes. Esta reducción de las funciones disponibles también reduce su carga de trabajo administrativo en comparación con AKS.
  • Capacidades: Características como el escalado, la integración de proveedores de identidad, el control de entrada y la adición de Dapr proporcionan un entorno notablemente completo para aquellos que buscan más de lo que ofrece ACI, pero no están dispuestos a lidiar con la gestión de Kubernetes. En el momento de escribir este artículo, ACA sólo acepta contenedores Linux. Esto significa que no es posible alojar aplicaciones .NET Framework en ACA.
  • Coste: ACA se factura por uso. Los contenedores inactivos se facturan a una tarifa más baja. Esto hace que ACA sea una opción rentable para aplicaciones con distintos niveles de carga.
  • Cuándo utilizarlo: Aplicaciones de microservicios, trabajos de procesamiento. ACA puede ser una buena opción si el conjunto de características de ACI no es adecuado, pero no se necesita la funcionalidad completa de Kubernetes.

Recapitulación

Hay muchas maneras de ejecutar aplicaciones en contenedores de Azure. La elección del entorno adecuado para su aplicación puede tener un gran impacto en la carga administrativa, el coste y el rendimiento. Por lo tanto, es importante analizar bien el tipo de aplicaciones que estas considerando, y comparar los pros y los contras de estos entornos. Con este artículo, hemos tratado de proporcionarte la base para tomar una decisión informada sobre la selección del entorno de contenedores de Azure.

Recapitulación

Consultoría Premium de Devoteam M Cloud

Devoteam M Cloud, socio MSP experto en Azure, es uno de los principales proveedores mundiales de tecnologías Microsoft Cloud. Nuestro equipo de más de 1.000 expertos en Microsoft en EMEA, ayuda a modernizar la arquitectura de TI de las principales empresas y organizaciones gubernamentales. Con ello, apoyamos a nuestros clientes en su viaje digital a la Nube, los preparamos para el futuro y les proporcionamos los mejores servicios gestionados.