Compartir a través de


Perspectiva del Framework Azure Well-Architected sobre las funciones de Azure

Azure Functions es un servicio de proceso sin servidor que permite ejecutar código controlado por eventos sin tener que administrar la infraestructura explícitamente. Como una oferta de Funciones como servicio" (FaaS), Azure Functions abstrae la infraestructura subyacente, lo que le permite centrarse en el código. Este servicio se escala automáticamente según la demanda y solo te cobra por los recursos consumidos durante la ejecución.

En este documento se da por supuesto que, como arquitecto, ha revisado el árbol de decisión de cómputo y ha elegido Azure Functions como su solución de cómputo para su carga de trabajo. Las instrucciones que se proporcionan aquí se alinean con los principios de los pilares de Azure Well-Architected Framework.

Importante

Cómo usar esta guía

Cada sección contiene una lista de comprobación de diseño que destaca las áreas de preocupación arquitectónica y ofrece estrategias de diseño específicas para Azure Functions.

Las recomendaciones de ofrecen funcionalidades tecnológicas para ayudar a implementar estas estrategias. Esta lista no es exhaustiva, pero incluye recomendaciones clave para ayudarle a crear o optimizar las cargas de trabajo con Azure Functions.

Arquitectura básica que muestra las recomendaciones clave: Diseño de arquitectura de funciones sin servidor

Ámbito de la tecnología

Esta revisión se centra en las decisiones relacionadas entre sí para los siguientes recursos de Azure:

  • Aplicaciones de Functions

Nota

Esta guía de servicio se basa en las instrucciones de la guía del 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 de proceso subyacente para su carga de trabajo. 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, mientras que Dedicated y Premium le ofrece la capacidad de configurar y administrar la instancia de App Service. Consulte la guía del servicio App Service para obtener recomendaciones y consideraciones al elegir un plan de hospedaje Dedicado o Premium.

Fiabilidad

El pilar de confiabilidad garantiza la funcionalidad continua al fomentar la resiliencia y permitir una recuperación rápida de los fallos.

Los principios de diseño de confiabilidad proporcionan estrategias de diseño de alto nivel que se aplican a componentes individuales, flujos del sistema y al sistema general.

Lista de comprobación de diseño

Inicie la estrategia de diseño en función de los Principios de diseño de confiabilidad. Evalúe su relevancia para los requisitos empresariales a la vez que tenga en cuenta las características y configuraciones específicas de Azure Functions.

  • Comprender los desencadenadores: Asegúrese de que comprende 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.

  • Implementar reintentos y patrones duraderos: usar directivas de reintento integradas para errores transitorios. Para flujos de trabajo más complejos, considere la posibilidad de usar Durable Functions, que ofrecen administración de estado y coordinación en varias ejecuciones de funciones.

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

  • Asegúrese de manejar adecuadamente las excepciones: implemente un manejo de excepciones sólido para asegurarse de que las funciones fallen de manera controlada. Registre errores y considere la posibilidad de implementar mecanismos de alertas para errores críticos.

  • Plan de 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 garantizar la confiabilidad en varios pasos.

  • Supervisar 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
Recomendación Beneficio
Configure reintentos automáticos para errores transitorios. Obtenga más información sobre Reintentos y control de errores 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.
Usa Funciones duraderas de Azure para orquestar flujos de trabajo complejos y procesos de larga duración. Obtenga más información sobre Durable Functions. Proporciona una ejecució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 ejecuciones 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. Obtenga información sobre el escalado. Garantiza que la aplicación pueda controlar los aumentos del tráfico sin intervención manual, lo que mejora la confiabilidad y el rendimiento.

Seguridad

El pilar seguridad se centra en garantizar la confidencialidad, la integridad y la disponibilidad de los datos y los servicios.

Los principios de diseño de Seguridad ofrecen una estrategia de alto nivel para proteger Azure Functions, incluidos los procedimientos recomendados para la autenticación, la autorización y la protección de datos.

Lista de comprobación de diseño

Inicie la estrategia de diseño con la lista de comprobación de revisión de diseño de para la seguridad e identifique posibles vulnerabilidades. Amplíe su estrategia incorporando medidas de seguridad adicionales 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. Obtenga información sobre las identidades administradas.

  • Protege su aplicación de funciones con Microsoft Entra ID: Restrinja el acceso a las funciones configurando Azure Functions para requerir la autenticación con Microsoft Entra ID. Configurar la autenticación de Microsoft Entra.

  • Aplicar controles de seguridad de red: comprenda las opciones disponibles para que el modelo de hospedaje proteja la configuración de red de Functions. Proteja las redes para satisfacer sus requisitos.

Recomendaciones
Recomendación Beneficio
Habilitar identidades administradas para acceder de forma segura a los recursos de Azure. Habilitar identidades administradas Simplifica la administración de credenciales eliminando la necesidad de almacenar y rotar secretos, lo que 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. Protege la información sensible, como las claves de API y las cadenas de conexión, almacenándolas de manera 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

El pilar Optimización de costos se centra en identificar formas de reducir los costos al tiempo que se mantienen los niveles de rendimiento necesarios.

Los principios de diseño de optimización de costos proporcionan estrategias para equilibrar el costo y el rendimiento, lo que garantiza que la implementación de Azure Functions sea eficaz y rentable.

Lista de comprobación de diseño

Comience su estrategia de optimización de costos con la lista de verificación para la revisión de diseño para la optimización de costos y ajuste su diseño de acuerdo con sus requisitos presupuestarios.

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

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

  • Optimizar el tiempo de ejecución: reduzca el tiempo de ejecució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 ejecución.

  • Supervisar y analizar los costos: supervisar periódicamente el uso y los costos de las aplicaciones de funciones mediante Azure Cost Management y configurar alertas detectan anomalías en los costos. Obtenga información sobre la administración de costos y la optimización.

Recomendaciones
Recomendación Beneficio
Utilice el plan de consumo para cargas de trabajo con tráfico impredecible. Comprender el plan de consumo. Reduce los costos cobrando solo por los recursos usados durante la ejecución de la función, evitando 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 ejecución constantes.
Supervise regularmente los costes y configure alertas para detectar anomalías. Configurar alertas de costos. Ayuda a identificar los picos de costos al principio, lo que permite una administración y optimización proactivas.

Excelencia operativa

La excelencia operativa se centra en los procesos y procedimientos para la implementación, observabilidad y administración de las aplicaciones de Azure Functions.

Los principios de diseño excelencia operativa proporcionan estrategias para asegurarse de que las aplicaciones de funciones se implementan, administran y supervisan de forma eficaz.

Lista de comprobación de diseño

Inicie su estrategia de diseño basada en los principios de diseño para la Excelencia Operativa. ofrece estrategias para mantener la calidad operativa de Azure Functions.

  • Automatice las implementaciones: use canalizaciones de 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. Monitor Azure Function.

  • Implementar la solución de forma segura: comprenda los modelos de implementación de disponibles para Azure Functions y adopte el modelo que mejor se adapte a las prácticas de implementación seguras.

  • Plan para la recuperación ante desastres: implemente estrategias de recuperación ante desastres mediante la recuperación ante desastres entre regiones y la zona de disponibilidad para funciones críticas. Plan para DR.

Recomendaciones
Recomendación Beneficio
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 ranuras de implementación para almacenar cambios de forma provisional antes de la versión de producción. Implemente mediante ranuras. Reduce el riesgo de introducir errores en producción y permite reversiones seguras si se detectan problemas.
Implemente la supervisión centralizada usando métricas disponibles de Application Insights y Azure Monitor. 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 garantiza experiencia de usuario óptima incluso bajo un mayor de carga mediante la administración eficaz de la capacidad.

Los principios de diseño eficiencia del rendimiento proporcionan estrategias para ayudarle a diseñar aplicaciones de funciones que cumplan los requisitos de rendimiento, incluso a medida que aumenta la demanda.

Lista de comprobación de diseño

Inicie la estrategia de rendimiento con los principios de Diseño de de eficiencia del rendimiento y diseñe las aplicaciones de funciones para escalar y realizar un rendimiento óptimo.

  • Optimizar el arranque en frío: Minimize el impacto de los inicios en frío utilizando planes Premium Flex con una instancia precalentada o asegurándose de que las funciones permanezcan activas con estrategias como el activador de calentamiento de Azure Functions.

  • Optimizar código de función: escribir código eficaz para reducir el tiempo de ejecució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: utilice las funcionalidades de escalado automático de Azure Functions para escalar según la demanda. Asegúrese de que las reglas de escalado estén bien definidas y probadas.

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

Recomendaciones
Recomendación Beneficio
Utiliza el plan Elastic Premium con una instancia pre-calentada para minimizar la latencia de arranque en frío. Conozca el arranque en frío. Reduce la latencia asociada a los inicios en frío, lo que mejora los tiempos de respuesta de las aplicaciones que distinguen el tiempo.
optimizar el código de función para reducir el tiempo de ejecución. Procedimientos recomendados para Azure Functions. Mejora el rendimiento al reducir el tiempo y los recursos necesarios para cada ejecución de función.
Habilitar 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 pueden controlar cargas variables sin intervención manual, manteniendo el rendimiento bajo presión.

Directivas de Azure

Azure proporciona un conjunto completo de directivas integradas para auditar y aplicar configuraciones para Azure Functions y sus dependencias. Puede usar Azure Policy para asegurarse de que las aplicaciones de funciones cumplen los estándares de la organización para la seguridad, la optimización de costos y el rendimiento.

Por ejemplo, puede aplicar directivas que requieran:

  • Identidades administradas que se habilitarán para todas las aplicaciones de funciones.
  • Las aplicaciones de funciones solo usan puntos de conexión privados para la seguridad de red.
  • Habilitar el registro de diagnóstico para todas las aplicaciones de funciones.

Examine las definiciones integradas de Azure Policy para encontrar directivas que se ajusten a los requisitos de su organización.

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. Las recomendaciones de Advisor se alinean con los pilares de Well-Architected Framework.

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

Pasos siguientes

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