Compartir vía


Elección de una opción de proceso de Azure para los microservicios

El término proceso hace referencia al modelo de hospedaje para los recursos informáticos donde se ejecutan las aplicaciones. En este artículo se proporcionan instrucciones prescriptivas para ayudarle a elegir una plataforma de proceso para microservicios. La selección de la plataforma de proceso de microservicios puede depender de requisitos más matizados.

Para una arquitectura de microservicios, los enfoques siguientes son populares:

  • Implemente microservicios en plataformas de proceso dedicadas, normalmente mediante un orquestador de microservicios.
  • Implemente microservicios en una plataforma sin servidor.

Aunque estas opciones no son las únicas, ambas son enfoques probados para crear microservicios. Una aplicación puede incluir ambos enfoques.

Diagrama que muestra las opciones de proceso de microservicios en Azure.

Descargue un archivo Visio de esta arquitectura.

Uso de una plataforma sin servidor

Puede usar plataformas sin servidor para implementar microservicios en Azure Container Apps o Azure Functions. Tanto Container Apps como Functions proporcionan opciones de proceso sin servidor que facturan en función del volumen de solicitudes en lugar del consumo de proceso. Ambas plataformas también ofrecen la opción de hospedar las cargas de trabajo en capacidad dedicada.

Implementación de microservicios basados en código

Si quiere implementar los microservicios como código en lugar de incluirlos en contenedores, es posible que quiera usar Azure Functions. Para obtener más información, consulte la lista de lenguajes de programación y scripting admitidos por Functions. En el caso de los microservicios que desarrolle en otros lenguajes, es posible que quiera implementar un controlador personalizado en Functions o considere la posibilidad de incluir la aplicación en contenedores.

Uso de un modelo de GPU

Si el microservicio requiere capacidad de GPU, por ejemplo, para ejecutar tareas de aprendizaje automático, considere la posibilidad de elegir Container Apps o Azure Kubernetes Service (AKS) para la plataforma. AKS puede usar cualquier modelo de GPU en Azure y Container Apps ofrece un subconjunto de modelos de GPU entre los que elegir.

Uso de orquestadores de servicio

Un orquestador controla las tareas relacionadas con la implementación y administración de un conjunto de servicios. Estas tareas incluyen colocar servicios en los nodos, supervisar el estado de los servicios, reiniciar los servicios en mal estado, equilibrar la carga del tráfico de red en todas las instancias de servicio, detectar servicios, escalar el número de instancias de un servicio y aplicar actualizaciones de configuración. Los orquestadores populares incluyen Kubernetes, Azure Service Fabric, DC/OS y Docker Swarm.

En la plataforma Azure, tenga en cuenta las siguientes opciones:

  • Azure Kubernetes Service (AKS) es un servicio administrado de Kubernetes. AKS aprovisiona Kubernetes y expone los puntos de conexión de la API de Kubernetes, hospeda y administra el plano de control de Kubernetes y realiza actualizaciones automatizadas, aplicación de revisiones automatizadas, escalado automático y otras tareas de administración. AKS proporciona acceso directo a las API de Kubernetes.

  • Container Apps es un servicio administrado basado en Kubernetes que abstrae las complejidades de la orquestación de contenedores y otras tareas de administración. Container Apps simplifica la implementación y administración de aplicaciones y microservicios contenedorizados en un entorno sin servidor, a la vez que proporciona las características de Kubernetes. Container Apps es ideal para escenarios en los que no se requiere acceso directo a las API de Kubernetes.

  • Service Fabric es una plataforma de sistemas distribuidos para empaquetar, implementar y administrar microservicios. Puede implementar microservicios en Service Fabric como contenedores, como archivos ejecutables binarios o como Reliable Services. Mediante el modelo de programación de Reliable Services, los servicios pueden usar directamente las API de programación de Service Fabric para consultar el sistema, notificar el estado, recibir notificaciones sobre los cambios de configuración y código y detectar otros servicios.

  • Use Red Hat OpenShift en Azure para implementar clústeres de OpenShift totalmente administrados. Red Hat OpenShift en Azure amplía Kubernetes. Red Hat OpenShift en Azure está diseñado conjuntamente, operado y compatible con Red Hat y Microsoft.

  • Otras opciones, como Docker Enterprise Edition, se pueden ejecutar en un entorno de informática en la nube en Azure. Puede encontrar plantillas de implementación en Azure Marketplace.

Uso de las API de Kubernetes

El acceso a las API de Kubernetes suele ser un factor determinante al elegir una opción de proceso. AKS proporciona acceso directo a las API de Kubernetes, pero Container Apps no. Container Apps oculta las complejidades de Kubernetes y simplifica la experiencia de implementación del contenedor. Si diseña la implementación de microservicios para interactuar directamente con las API de Kubernetes, AKS podría ser la opción adecuada.

Otros factores de decisión

Puede haber otros factores que afecten a la selección de la plataforma de proceso de microservicios. Estos factores incluyen opciones de malla de servicio, escalabilidad de plataforma y conjuntos de aptitudes que puede usar dentro de la organización.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Confiabilidad

La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.

Uno de los pilares clave de la fiabilidad es la resistencia. El objetivo de la resistencia es devolver la carga de trabajo a un estado de funcionamiento completo después de que se produzca un error.

Si elige Azure Functions como plataforma informática de microservicios, considere la posibilidad de implementar el plan Premium de Functions o App de Azure Plan de servicio en una configuración con redundancia de zona. Para obtener más información, vea Confiabilidad en funciones.

Si elige AKS como plataforma informática de microservicios, puede mejorar la confiabilidad de los microservicios mediante la implementación de un clúster de AKS que usa zonas de disponibilidad, mediante el nivel Estándar o Premium para clústeres de Azure Kubernetes y aumentando el número mínimo de pods y nodos. Para más información, consulte Procedimientos recomendados de implementación y confiabilidad de clústeres para AKS.

Si elige Aplicaciones de contenedor como plataforma informática de microservicios, puede mejorar la confiabilidad mediante zonas de disponibilidad. Para obtener más información, consulte Confiabilidad en Aplicaciones de contenedor.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para obtener más información, consulte Lista de comprobación de revisión de diseño para seguridad.

Si elige Azure Functions como plataforma de proceso para implementar microservicios, los principios de protección de Azure Functions también se aplican a los microservicios.

Si elige AKS como plataforma de proceso para implementar microservicios, la arquitectura de línea de base de seguridad de AKS proporciona instrucciones para proteger la plataforma de proceso. Para conocer los procedimientos recomendados sobre la seguridad de microservicios en AKS, consulte Arquitectura avanzada de microservicios de AKS.

Si elige Container Apps como plataforma de proceso para implementar microservicios, consulte la línea de base de seguridad de Container Apps para conocer los procedimientos recomendados de seguridad.

Optimización de costos

La optimización de costes trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.

Cuando se usa un orquestador, se paga por las máquinas virtuales que se ejecutan en el clúster. Cuando se usa una aplicación sin servidor, solo se paga por los recursos de proceso reales que consume. En ambos casos, debe tener en cuenta el costo de cualquier servicio adicional, como el almacenamiento, las bases de datos y los servicios de mensajería.

Azure Functions, Container Apps y AKS proporcionan opciones de escalado automático. Container Apps y Functions proporcionan plataformas sin servidor en las que el costo se basa en el consumo y puede ser cero. AKS solo proporciona opciones de proceso dedicadas.

Si elige AKS como plataforma de proceso para implementar microservicios, debe comprender los procedimientos recomendados de optimización de costos. Para más información, consulte Optimización de los costos en Azure Kubernetes Service.

Si elige Container Apps como plataforma de proceso de microservicios, debe comprender los distintos modelos de facturación y decidir el modelo de implementación de los microservicios en función de los requisitos de carga de trabajo. Para obtener más información, consulte Facturación en Aplicaciones de contenedor.

Si elige Azure Functions como plataforma de proceso de microservicios, debe comprender los distintos modelos de facturación y decidir el plan de Functions en función de los requisitos de carga de trabajo. Para más información, consulte Estimación de los costos basados en el consumo y los detalles del plan de Azure Functions.

Excelencia operativa

La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte la Lista de comprobación de revisión de diseño para la excelencia operativa.

Puede implementar todas las opciones de proceso de microservicios que en este artículo se describen de forma automatizada mediante Terraform, Bicep y otros lenguajes de scripting. Puede usar Application Insights, Azure Monitor y otras soluciones de supervisión para supervisar estas plataformas de proceso y microservicios.

Tenga en cuenta los siguientes factores al elegir entre un enfoque de orquestador y un enfoque sin servidor:

  • Flexibilidad y control: un orquestador le proporciona control sobre la configuración y administración de los servicios y el clúster. El equilibrio es más complejo. Con una arquitectura sin servidor, se renuncia a un cierto grado de control porque se extraen estos detalles.

  • Portabilidad: todos los orquestadores enumerados en este artículo, incluidos Kubernetes, DC/OS, Docker Swarm y Service Fabric, se pueden ejecutar de forma local o en varias nubes públicas.

  • Integración de aplicaciones: puede resultar difícil crear una aplicación compleja que use una arquitectura sin servidor porque necesita coordinar, implementar y administrar muchas funciones pequeñas e independientes. Una opción en Azure es usar Azure Logic Apps para coordinar un conjunto de funciones de Azure. Para obtener un ejemplo de este enfoque, consulte Creación de una función que se integre con Logic Apps.

Paso siguiente