Eventos
Compilación de Intelligent Apps
17 mar, 23 - 21 mar, 23
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Azure ofrece una gama de servicios de hospedaje de contenedores diseñados para dar cabida a varias cargas de trabajo, arquitecturas y requisitos empresariales. Esta guía de selección de servicios de contenedor puede ayudarle a comprender qué servicio de contenedor de Azure es más adecuado para los escenarios y requisitos de la carga de trabajo.
Nota
En esta guía, el término carga de trabajo hace referencia a una colección de recursos de aplicación que buscan cumplir un objetivo empresarial o la ejecución de un proceso de negocio. Una carga de trabajo usa varios servicios, como las API y los almacenes de datos, que funcionan conjuntamente para ofrecer funcionalidades específicas de un extremo a otro.
Esta guía incluye dos artículos: este artículo de introducción y otro artículo sobre consideraciones compartidas en todos los tipos de carga de trabajo.
Nota
Si aún no está comprometido con la contenedorización, consulte Elegir un servicio de proceso de Azure para obtener información sobre otras opciones de proceso que puede usar para hospedar la carga de trabajo.
En este artículo de introducción se describen los servicios de contenedor de Azure que están en el ámbito de esta guía y cómo se comparan los modelos de servicio en términos de inconvenientes entre la configuración y las soluciones con opiniones, como los enfoques administrados por el cliente frente a los administrados por Microsoft. Después de identificar los servicios candidatos en función de las preferencias del modelo de servicio, el siguiente paso es evaluar las opciones con respecto a los requisitos de carga de trabajo revisando el artículo sobre consideraciones compartidas para las redes, la seguridad, las operaciones y la confiabilidad.
En esta guía se tienen en cuenta las concesiones que podría necesitar realizar, en función de los requisitos técnicos, el tamaño y la complejidad de la carga de trabajo y la experiencia del equipo de la carga de trabajo.
Esta guía se centra en un subconjunto de los servicios de contenedor que Azure ofrece actualmente. Este subconjunto proporciona un conjunto de características maduro para aplicaciones web y API, redes, observabilidad, herramientas de desarrollo y operaciones. Estos servicios de contenedor se comparan:
Azure Container Apps es una plataforma totalmente administrada que permite ejecutar aplicaciones en contenedores sin preocuparse por la orquestación o la infraestructura. Para más información, consulta la documentación de Azure Container Apps.
azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado para ejecutar aplicaciones en contenedor. Con AKS, puede aprovechar las ventajas de los complementos y extensiones administrados para funcionalidades adicionales, a la vez que conserva el nivel de configuración más amplio. Para obtener más información, vea la documentación de AKS.
web App for Containers es una característica de Azure App Service, un servicio totalmente administrado para hospedar aplicaciones web basadas en HTTP con mantenimiento de infraestructura integrado, aplicación de revisiones de seguridad, escalado y herramientas de diagnóstico. Para obtener más información, consulte la Documentación de App Service.
Para obtener una lista completa de todos los servicios de contenedor de Azure, consulte la página de categoría de productos de servicios de contenedor.
El modelo de servicio proporciona la información más amplia sobre el nivel de flexibilidad y control que proporciona cualquier servicio de contenedor de Azure, a cambio de su simplicidad general y facilidad de uso.
Para obtener una introducción general a la terminología y los conceptos sobre los modelos de servicio, incluida la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS), consulte Responsabilidad compartida en la nube.
Como híbrido de IaaS y PaaS, AKS prioriza el control sobre la simplicidad, aprovechando el estándar de facto para la orquestación de contenedores: Kubernetes. Aunque AKS simplifica la administración de la infraestructura básica subyacente, esta plataforma basada en vm sigue expuesta a las aplicaciones y requiere límites de protección y procesos adecuados, como la aplicación de revisiones, para garantizar la seguridad y la continuidad empresarial. La infraestructura de proceso es compatible con recursos adicionales de Azure que se hospedan directamente en la suscripción, como equilibradores de carga de Azure.
AKS también proporciona acceso al servidor de API de Kubernetes, que le permite personalizar la orquestación de contenedores e implementar proyectos desde Cloud Native Computing Foundation (CNCF). Por lo tanto, existe una curva de aprendizaje significativa para los equipos responsables de la carga de trabajo que son nuevos en Kubernetes. Si no está familiarizado con las soluciones en contenedores, esta curva de aprendizaje debe tenerse en cuenta. Las siguientes soluciones paaS ofrecen una barrera inferior a la entrada. Puede pasar a Kubernetes cuando los requisitos dicten ese movimiento.
AKS Automatic simplifica la adopción de Kubernetes mediante la automatización de tareas complejas de administración de clústeres, lo que reduce la necesidad de conocimientos profundos de Kubernetes. Ofrece una experiencia similar a PaaS más simplificada, a la vez que conserva la flexibilidad y la extensibilidad de Kubernetes. Azure controla la configuración del clúster, el aprovisionamiento de nodos, el escalado, la aplicación de revisiones de seguridad y aplica algunas configuraciones de procedimientos recomendados de forma predeterminada. Esto reduce el esfuerzo operativo, pero incluye un conjunto restringido de opciones de topología disponibles.
Nota
En esta guía se distinguirá entre AKS Standard y AKS Automatic cuando corresponda. De lo contrario, se puede suponer que la funcionalidad descrita tiene paridad entre las ofertas estándar y automáticas.
Azure Container Apps es una capa de abstracción sobre Kubernetes que permite que las aplicaciones se ejecuten y escalen sin tener que administrar directamente la infraestructura subyacente. Container Apps ofrece opciones de proceso sin servidor y dedicadas, lo que proporciona control total sobre el tipo y la cantidad de recursos de proceso disponibles para las aplicaciones. Aunque abstrae las API de orquestación de contenedores, Container Apps sigue proporcionando acceso preconfigurado a características clave como la entrada de nivel 7, la división de tráfico, las pruebas A/B y la administración del ciclo de vida de las aplicaciones.
Web App for Containers también es una oferta de PaaS, pero proporciona más simplicidad y menos control que Container Apps. Abstrae la orquestación de contenedores, pero sigue proporcionando el escalado adecuado, la gestión del ciclo de vida de las aplicaciones, la división del tráfico, la integración de red y la observabilidad.
Puede usar recursos de Azure, como clústeres de AKS, para hospedar varias cargas de trabajo. Si lo hace, puede ayudarle a simplificar las operaciones y, por tanto, reducir el costo total. Si elige esta ruta de acceso, estas son algunas consideraciones importantes:
AKS se usa normalmente para hospedar varias cargas de trabajo o componentes dispares de las cargas de trabajo. Puede aislar estas cargas de trabajo y componentes mediante la funcionalidad nativa de Kubernetes, como espacios de nombres, controles de acceso y controles de red, para cumplir los requisitos de seguridad.
También puede usar AKS en escenarios de carga de trabajo única si necesita la funcionalidad adicional que proporciona la API de Kubernetes y el equipo de cargas de trabajo tiene suficiente experiencia para operar un clúster de Kubernetes. Los equipos con menos experiencia de Kubernetes pueden seguir funcionando correctamente sus propios clústeres aprovechando los complementos y características administrados de Azure, como la actualización automática del clúster, para reducir el esfuerzo operativo.
Las aplicaciones de contenedores deberían utilizarse para alojar un único workload bajo un límite de seguridad compartido. Container Apps tiene un único límite lógico de nivel superior denominado entorno de Container Apps, que también actúa como límite de seguridad mejorado. No hay mecanismos para el control de acceso pormenorizado adicional. Por ejemplo, la comunicación dentro del entorno no está restringida y todas las aplicaciones comparten un único área de trabajo de Log Analytics.
Si la carga de trabajo tiene varios componentes y varios límites de seguridad, implemente varios entornos de Container Apps o considere AKS en su lugar.
Web App for Containers es una característica de App Service. App Service agrupa las aplicaciones en un límite de facturación que se denomina un plan de App Service . Dado que puede definir el ámbito del control de acceso basado en rol (RBAC) en el nivel de aplicación, puede resultar tentador hospedar varias cargas de trabajo en un solo plan. Sin embargo, se recomienda alojar una sola carga de trabajo por plan para evitar el problema del "vecino ruidoso". Todas las aplicaciones de un único plan de App Service comparten el mismo proceso, memoria y almacenamiento asignados.
Cuando considere el aislamiento de hardware, debe tener en cuenta que los planes de App Service se ejecutan normalmente en la infraestructura que se comparte con otros clientes de Azure. Puede elegir Niveles dedicados para máquinas virtuales dedicadas o niveles aislados para máquinas virtuales dedicadas en una red virtual dedicada.
En general, todos los servicios de contenedor de Azure pueden hospedar varias aplicaciones que tienen varios componentes. Sin embargo, Container Apps y Web App for Containers son más adecuados para un componente de carga de trabajo único o varios componentes de carga de trabajo altamente relacionados que comparten un ciclo de vida similar, donde un único equipo posee y ejecuta las aplicaciones.
Si necesita hospedar componentes o cargas de trabajo de aplicación dispares, potencialmente no relacionados en un host, considere la posibilidad de usar AKS.
AKS proporciona la mayor capacidad de configuración, pero esta capacidad de configuración requiere un esfuerzo más operativo, en comparación con los demás servicios. Aunque Container Apps y Web App for Containers son servicios PaaS que tienen niveles similares de características administradas por Microsoft, Web App for Containers enfatiza la simplicidad para satisfacer a su público objetivo: los clientes de PaaS de Azure existentes, que encuentran la interfaz familiar.
Por lo general, los servicios que ofrecen mayor simplicidad tienden a adaptarse a los clientes que prefieren centrarse en el desarrollo de características en lugar de en la administración de infraestructuras. Los servicios que ofrecen más control tienden a adaptarse a los clientes que necesitan más capacidad de configuración y tienen las aptitudes, los recursos y la justificación comercial necesarios para administrar su propia infraestructura.
Aunque un equipo de carga de trabajo podría preferir un modelo de servicio determinado, es posible que ese modelo no cumpla los requisitos de la organización en su conjunto. Por ejemplo, los desarrolladores podrían preferir menos esfuerzo operativo, pero los equipos de seguridad podrían considerar este tipo de sobrecarga necesaria para cumplir los requisitos de cumplimiento. Los equipos deben colaborar para hacer las concesiones adecuadas.
Tenga en cuenta que las consideraciones compartidas son amplias. Solo un subconjunto puede ser relevante para usted, dependiendo no solo del tipo de carga de trabajo, sino también de su rol dentro de la organización.
En la tabla siguiente se proporciona información general de alto nivel sobre las consideraciones, incluidas las comparaciones de características de servicio. Revise las consideraciones de cada categoría y compárelas con los requisitos de la carga de trabajo.
Category | Información general |
---|---|
Consideraciones para las redes | Las redes en los servicios de contenedor de Azure varían en función de su preferencia por la simplicidad frente a la capacidad de configuración. AKS es altamente configurable, lo que proporciona un amplio control sobre el flujo de red, pero requiere un esfuerzo más operativo. Container Apps ofrece características de red administradas por Azure. Es un punto intermedio entre AKS y Web App for Containers, que se adapta a los clientes que están familiarizados con App Service. Fundamentalmente, las decisiones de diseño de red pueden tener consecuencias a largo plazo debido a los desafíos de cambiarlas sin volver a implementar cargas de trabajo. Varios factores, como el planeamiento de direcciones IP, las responsabilidades de equilibrio de carga, los métodos de detección de servicios y las funcionalidades de red privada, difieren en estos servicios. Debe revisar cuidadosamente cómo los servicios cumplen requisitos específicos de red. |
Consideraciones sobre la seguridad | Container Apps, AKS y Web App for Containers proporcionan integración con ofertas de seguridad de Azure clave, como Azure Key Vault e identidades administradas. AKS ofrece características adicionales, como la protección contra amenazas en tiempo de ejecución y las directivas de red. Aunque puede parecer que los servicios paaS, como Container Apps, ofrecen menos características de seguridad, esto se debe en parte a que Azure administra más componentes de infraestructura subyacentes y no se expone a los clientes, lo que reduce el riesgo. |
Consideraciones acerca de las operaciones | AKS ofrece la mayor personalización, pero requiere una entrada operativa mayor. Por el contrario, las soluciones PaaS, como Container Apps y Web App for Containers, permiten a Azure controlar tareas como actualizaciones del sistema operativo. La escalabilidad y la flexibilidad de la SKU de hardware son cruciales. AKS proporciona opciones de hardware flexibles, mientras que Container Apps y Web App for Containers proporcionan menos opciones. La escalabilidad de aplicaciones en AKS es responsabilidad del cliente, lo que significa que puede aplicar cualquier solución compatible con Kubernetes. AKS Automatic, Container Apps y Web App for Containers se centran en enfoques más sencillos. |
Consideraciones sobre la confiabilidad | Las configuraciones de sondeo de estado de Web App for Containers y Container Apps están limitadas en comparación con AKS, pero son más sencillas de configurar, dado que usan la API de Azure Resource Manager conocida. AKS requiere el uso de la API de Kubernetes. También requiere que asuma la responsabilidad adicional de administrar la escalabilidad y disponibilidad del grupo de nodos de Kubernetes para programar correctamente las instancias de aplicación. Estos requisitos dan lugar a un esfuerzo operativo adicional para AKS. Además, los Acuerdos de Nivel de Servicio para Container Apps y Web App for Containers son más sencillos de calcular que los de AKS, para los que el plano de control y los grupos de nodos tienen sus propios SLA y deben estar compuestos en consecuencia. Todos los servicios ofrecen redundancia de zona en centros de datos que lo ofrecen. |
Después de revisar las consideraciones anteriores, es posible que todavía no haya encontrado el ajuste perfecto. Eso es perfectamente normal.
Elegir un servicio en la nube no es un ejercicio sencillo. Dada la complejidad de la informática en la nube, la colaboración entre muchos equipos y las restricciones de recursos que implican personas, presupuestos y tiempo, cada solución tiene inconvenientes.
Tenga en cuenta que, para cualquier carga de trabajo determinada, algunos requisitos pueden ser más críticos que otros. Por ejemplo, un equipo de aplicaciones podría preferir una solución PaaS, como Container Apps, pero elegir AKS porque su equipo de seguridad requiere controles de red denegados de forma predeterminada entre componentes de carga de trabajo colocados, que es una característica solo de AKS que usa directivas de red de Kubernetes.
Por último, tenga en cuenta que las consideraciones compartidas anteriores incluyen los requisitos más comunes, pero no son completos. Es responsabilidad del equipo de trabajo investigar todos los requisitos en relación con el conjunto de características del servicio preferido antes de confirmar una decisión.
En esta guía se describen las consideraciones más comunes a las que se enfrenta al elegir un servicio de contenedor de Azure. Está diseñado para guiar a los equipos de cargas de trabajo a tomar decisiones fundamentadas. El proceso comienza por elegir un modelo de servicio en la nube, lo que implica determinar el nivel de control deseado. El control se produce a costa de la simplicidad. Es decir, es un proceso para encontrar el equilibrio adecuado entre una infraestructura autoadministrada y otra administrada por Microsoft.
Muchos equipos de cargas de trabajo pueden elegir un servicio de contenedor de Azure únicamente en función del modelo de servicio preferido: PaaS frente a IaaS. Otros equipos deben investigar más para determinar cómo las características específicas del servicio abordan los requisitos de la carga de trabajo o de la organización.
Todos los equipos de carga de trabajo deben usar esta guía además de incorporar la diligencia debida para evitar decisiones difíciles de revertir. Sin embargo, tenga en cuenta que la decisión no se confirma hasta que los desarrolladores prueben el servicio y decidan en función de la experiencia en lugar de la teoría.
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
Otros colaboradores:
Obtenga más información sobre las consideraciones de arquitectura compartidas para los servicios mencionados en este artículo.
Eventos
Compilación de Intelligent Apps
17 mar, 23 - 21 mar, 23
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Diseñar una estrategia de construcción de contenedores - Training
Diseñar una estrategia de construcción de contenedores
Certificación
Microsoft Certified: Azure for SAP Workloads Specialty - Certifications
Muestre la planeación, la migración y el funcionamiento de una solución de SAP en Microsoft Azure mientras aprovecha los recursos de Azure.
Documentación
Implementación de microservicios con Azure Container Apps - Azure Architecture Center
Implemente aplicaciones de microservicio existentes con Azure Container Apps.
Obtenga información general rápida sobre las consideraciones comunes de nivel de característica que pueden ayudarle a elegir un servicio de Azure Container Service. Parte dos de una serie.
Elección de una instancia de Kubernetes en la opción Proceso de Edge - Azure Architecture Center
Obtenga información sobre las ventajas y desventajas de las distintas opciones disponibles para extender el proceso en el perímetro.