Compartir a través de


Procedimientos recomendados de arquitectura para Azure Functions

Azure Functions es un servicio de proceso sin servidor que puede usar para ejecutar código controlado por eventos sin tener que administrar la infraestructura directamente. Azure Functions es una función como oferta de servicio que abstrae la infraestructura subyacente. Esta abstracción le permite centrarse en el código. Azure Functions se escala automáticamente en función de la demanda, cobrándote solo por los recursos consumidos durante la operación.

En este artículo se da por supuesto que, como arquitecto, usted ha revisado el árbol de decisión de computación y ha elegido Azure Functions como solución de computación para la carga de trabajo. La guía de este artículo proporciona recomendaciones arquitectónicas que están alineadas con los principios de los pilares del marco Well-Architected.

Ámbito de la tecnología

Esta revisión se centra en las decisiones relacionadas entre sí para el siguiente recurso de Azure:

  • Aplicaciones de funciones

Note

Esta guía de servicio se basa en las instrucciones de la guía del servicio Azure App Service (Web Apps). Azure Functions es un servicio de proceso sin servidor. Las funciones se implementan en planes de servicio de aplicaciones, que proporcionan la infraestructura informática subyacente para su workload. Puede elegir entre varios planes de hospedaje.

El plan de consumo está totalmente administrado y no admite el acceso a la instancia de App Service asociada. Los planes de hospedaje Dedicados y Premium permiten configurar y administrar la instancia de App Service. Consulte la guía del servicio App Service para obtener recomendaciones y consideraciones al elegir el plan de hospedaje Dedicado o Premium.

Reliability

El propósito del pilar Fiabilidad es proporcionar una funcionalidad continuada mediante la creación de suficiente resiliencia y la capacidad de recuperarse rápidamente de los fallos.

Los principios de diseño de confiabilidad proporcionan una estrategia de diseño de alto nivel aplicada a componentes individuales, flujos del sistema y al sistema en su conjunto.

Lista de comprobación de diseño de cargas de trabajo

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Fiabilidad. Determine su relevancia para los requisitos empresariales a la vez que tenga en cuenta las características y configuraciones específicas de Azure Functions. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • Comprender los desencadenadores: Asegúrese de comprender completamente cómo se desencadena Azure Functions. Los desencadenadores incluyen solicitudes HTTP, temporizadores, colas y mucho más. Elija desencadenadores que coincidan con los requisitos de confiabilidad de la aplicación.

    Por ejemplo, si la función procesa mensajes de una cola, asegúrese de que la propia cola es resistente y que los mensajes se pueden volver a procesar si se produce un error.

  • Implemente reintentos y patrones duraderos: Use directivas de reintento integradas para errores transitorios. Para flujos de trabajo más complejos, considere la posibilidad de usar la extensión Durable Functions de Azure Functions. Proporciona gestión de estado y coordinación a través de múltiples operaciones de funciones.

    Durable Functions es especialmente útil para escenarios que requieren confiabilidad en flujos de trabajo de larga duración. Admite reintentos automáticos y gestión de tareas persistentes.

  • Asegúrese de un manejo adecuado de excepciones: Implemente un manejo de excepciones robusto para garantizar que las funciones fallen de manera controlada. Registre errores y considere la posibilidad de implementar mecanismos de alertas para errores críticos.

  • Planificar para la escalabilidad: Azure Functions se escala automáticamente en función de la demanda. Asegúrese de que la aplicación está diseñada para controlar los picos mediante la prueba de su rendimiento bajo carga.

    Considere la posibilidad de usar Application Insights para supervisar el rendimiento y realizar un seguimiento de cómo se escalan las funciones en tiempo real.

  • Diseño de idempotencia: asegúrese de que las funciones se pueden reintentar de forma segura sin causar efectos secundarios no deseados. La idempoencia es fundamental para las funciones que interactúan con sistemas externos o modifican datos.

  • Utilice funciones duraderas para las operaciones de ejecución prolongada: en las operaciones que requieren orquestación o procesos de larga duración, utilice funciones duraderas para mantener el estado y ayudar a garantizar la confiabilidad en varios pasos.

  • Supervise el estado de la solución: Integre la solución de Azure Functions en el sistema general de supervisión y alertas de estado de la carga de trabajo.

Recomendaciones de configuración

Recommendation Benefit
Configurar reintentos automáticos para errores transitorios. Obtenga más información sobre el control de errores y los reintentos de Azure Functions. Mejora la confiabilidad al reintentar automáticamente las ejecuciones con errores, lo que reduce la probabilidad de pérdida o interrupción de los datos.
Use Durable Functions para orquestar flujos de trabajo complejos y procesos de larga duración. Obtenga más información sobre Durable Functions. Proporciona una operación confiable de flujos de trabajo de larga duración, con administración de estado integrada y reintentos automáticos.
Implemente la supervisión y el registro centralizado mediante Application Insights. Configuración de Application Insights. Mejora la supervisión y la solución de problemas al proporcionar información detallada sobre las operaciones y dependencias de funciones.
Escale horizontalmente de forma automática según el plan de hospedaje de funciones, el tipo de desencadenador y la demanda. Más información sobre el escalado. Ayuda a garantizar que la aplicación pueda controlar los aumentos del tráfico sin intervención manual, lo que mejora la confiabilidad y el rendimiento.

Security

El propósito del pilar seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.

Los principios de diseño de seguridad proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos aplicando enfoques al diseño técnico en torno a Azure Functions.

Lista de comprobación de diseño de cargas de trabajo

Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño de seguridad e identifique vulnerabilidades y controles para mejorar la posición de seguridad. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • Uso de identidades administradas: Habilite las identidades administradas para que las aplicaciones de funciones accedan de forma segura a otros servicios de Azure sin necesidad de administrar las credenciales.

  • Proteja la aplicación de funciones con el identificador de Entra de Microsoft: Restrinja el acceso a las funciones mediante la configuración de Azure Functions para requerir la autenticación de Id. de Microsoft Entra.

  • Aplicar controles de seguridad de red: Conozca las opciones de red de Azure Functions disponibles para el modelo de hospedaje para ayudar a proteger la configuración de red de Azure Functions. Proteja las redes para satisfacer sus requisitos.

Recomendaciones de configuración

Recommendation Benefit
Habilite las identidades administradas para el acceso seguro a los recursos de Azure. Habilitar identidades administradas Simplifica la administración de credenciales eliminando la necesidad de almacenar y rotar secretos. Este enfoque mejora la seguridad.
Use Azure Key Vault para la administración de secretos y la rotación periódica. Integre Key Vault con Azure Functions. Ayuda a proteger la información confidencial, como las claves de API y las cadenas de conexión, almacenándola de forma segura y automatizando la rotación de secretos cuando no es factible usar una identidad administrada.
Integrar con una red virtual y utilizar puntos de conexión privados. Protege las aplicaciones de función mediante la restricción del acceso a la red interna y la prevención de la exposición a la red pública de Internet.

La integración de red virtual y los puntos de conexión privados no están disponibles en el plan de hospedaje de Consumo.

Optimización de costos

La optimización de costes se centra en detectar patrones de gasto, priorizar inversiones en áreas críticas y optimizar en otras para ajustarse al presupuesto de la organización al tiempo que se cumplen los requisitos empresariales.

Los principios de diseño de optimización de costos proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos y realizar concesiones según sea necesario en el diseño técnico relacionado con Azure Functions y su entorno.

Lista de comprobación de diseño de cargas de trabajo

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Optimización de costes para inversiones. Ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado para la carga de trabajo. El diseño debe usar las funcionalidades adecuadas de Azure, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.

  • Elija el plan de precios adecuado: Azure Functions tiene varios planes de precios, incluido el plan de consumo, el plan Premium y el plan Dedicado (App Service). Elija un plan de precios que se alinee con las consideraciones sobre la carga de trabajo y los costos.

    El plan de consumo es ideal para cargas de trabajo imprevisibles que tienen operaciones poco frecuentes porque solo se paga por el tiempo de operación y los recursos consumidos. Cuando la aplicación está inactiva, no se le cobrará.

  • Optimizar el tiempo de operación: Reduzca el tiempo de operación mediante la optimización del código de función. Minimice el uso de dependencias externas y optimice la lógica de código para reducir la duración de cada operación.

  • Supervisión y análisis de costos: Supervise periódicamente el uso y los costos de las aplicaciones de funciones mediante Microsoft Cost Management y configure alertas para detectar anomalías en los costos.

Recomendaciones de configuración

Recommendation Benefit
Use el plan de consumo para cargas de trabajo con tráfico imprevisible. Comprender el plan de consumo. Reduce los costos cobrando solo por los recursos usados cuando se realizan funciones, lo que evita los costos asociados a los recursos inactivos.
Reserve capacidad para planes Elastic Premium o planes de App Service dedicados si la carga de trabajo es predecible. Reduce los costos a través de precios con descuento para cargas de trabajo predecibles con patrones de uso constantes.
Supervise periódicamente los costos y configure alertas para detectar anomalías. Supervise los costos con alertas. Ayuda a identificar los picos de costos al principio, lo que permite la administración y optimización proactivas.

Excelencia operativa

La excelencia operativa se centra principalmente en los procedimientos para las prácticas de desarrollo , la observabilidad y la administración de versiones.

Los principios de diseño de excelencia operativa proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos para los requisitos operativos de la carga de trabajo.

Lista de comprobación de diseño de cargas de trabajo

Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño para la excelencia operativa para definir procesos de observabilidad, pruebas e implementación relacionados con Azure Functions.

  • Automatización de implementaciones: Use canalizaciones de integración continua y entrega continua (CI/CD) para automatizar la implementación de las aplicaciones de funciones. Integración con Azure DevOps o Acciones de GitHub para flujos de trabajo de implementación sin problemas.

  • Implementación de supervisión de estado: use Azure Monitor y Application Insights para realizar un seguimiento del estado y el rendimiento de las funciones. Configure alertas para métricas críticas y use paneles personalizados para obtener información en tiempo real. Para más información, consulte Supervisión de Azure Functions.

  • Implemente la solución de forma segura: Comprenda los modelos de implementación disponibles para Azure Functions y adopte el modelo que mejor cumpla los procedimientos de implementación seguros.

  • Planear la recuperación ante desastres (DR):implemente estrategias de recuperación ante desastres mediante la recuperación ante desastres entre regiones y zonas de disponibilidad para funciones críticas.

Recomendaciones de configuración

Recommendation Benefit
Automatice las implementaciones con canalizaciones de CI/CD mediante Azure DevOps o Acciones de GitHub. Configure CI/CD. Mejora la coherencia de la implementación, reduce los errores manuales y acelera el tiempo de comercialización de las nuevas características.
Use slots de implementación para preparar cambios antes de la versión de producción. Reduce el riesgo de introducir errores en producción y permite reversiones seguras si se detectan problemas.
Implemente la supervisión centralizada mediante Application Insights y Azure Monitor mediante métricas disponibles. Mejora la visibilidad del rendimiento de las funciones, lo que ayuda a identificar y resolver problemas rápidamente.

Eficiencia del rendimiento

La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando hay un aumento de la carga mediante la administración de la capacidad. La estrategia incluye el escalado de recursos, la identificación y la optimización de posibles cuellos de botella y la optimización del rendimiento máximo.

Los principios de diseño de eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos de capacidad con respecto al uso esperado.

Lista de comprobación de diseño de cargas de trabajo

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Eficiencia del rendimiento. Defina una línea base basada en indicadores clave de rendimiento para Azure Functions.

  • Optimizar los inicios en frío: Minimice los efectos de los inicios en frío utilizando planes Premium Flex que proporcionan instancias precalentadas o asegúrese de que sus funciones permanezcan cálidas mediante estrategias como el desencadenador de calentamiento de Azure Functions.

  • Optimizar código de función: Escriba código eficaz para reducir el tiempo de operación y el consumo de recursos. Evite las operaciones de larga duración y optimice las llamadas de servicio externos.

  • Habilitar el escalado automático: Aproveche las funcionalidades de escalado automático de Azure Functions para escalar horizontalmente automáticamente en función de la demanda. Asegúrese de que las reglas de escalado estén bien definidas y probadas.

  • Supervisión de las métricas de rendimiento: Use Application Insights para supervisar las métricas clave de rendimiento, como el tiempo de operación, la CPU y el uso de memoria. Configure alertas para la degradación del rendimiento.

Recomendaciones de configuración

Recommendation Benefit
Use el plan Elastic Premium con una instancia preprocesada para minimizar la latencia de arranque en frío. Conozca el arranque en frío. Reduce la latencia asociada con los inicios en frío, lo que mejora los tiempos de respuesta de las aplicaciones que distinguen el tiempo.
Optimice el código de función para reducir el tiempo de operación. Conozca los procedimientos recomendados para Azure Functions. Mejora el rendimiento al reducir el tiempo y los recursos necesarios para que se ejecute cada función.
Habilite el escalado automático para ajustar automáticamente la capacidad en función de la demanda. Configurar el escalado automático. Garantiza que las aplicaciones de funciones puedan controlar cargas variables sin intervención manual. Este enfoque ayuda a mantener el rendimiento bajo presión.

Directivas de Azure

Azure proporciona un amplio conjunto de directivas integradas relacionadas con Azure Functions y sus dependencias. Un conjunto de directivas de Azure puede auditar algunas de las recomendaciones anteriores. Por ejemplo, puede comprobar si:

  • Todas las aplicaciones de funciones tienen habilitadas identidades administradas.
  • Las aplicaciones de funciones solo usan puntos de conexión privados para la seguridad de red.
  • El registro de diagnóstico está habilitado para todas las funciones de aplicación.

Para una gobernanza completa, revise las Definiciones integradas en Azure Policy y otras políticas que puedan afectar a la seguridad de la capa de red.

Recomendaciones de Azure Advisor

Azure Advisor es un consultor en la nube personalizado que le ayuda a seguir los procedimientos recomendados para optimizar las implementaciones de Azure.

Para más información, consulte Azure Advisor.

Arquitectura de ejemplo

Arquitectura fundamental que muestra las recomendaciones clave: diseño de arquitectura de aplicaciones web.

Pasos siguientes

Tenga en cuenta los siguientes recursos para explorar aún más las recomendaciones resaltadas en este documento: