Editar

Share via


Azure Functions en un entorno híbrido

Azure Functions
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

En esta arquitectura de referencia se muestran varias ramas locales de una organización que están distribuidas geográficamente. Cada ubicación usa una aplicación de funciones de Microsoft Azure configurada con el plan Prémium en una región de nube cercana. Los desarrolladores de esta arquitectura supervisan todas las aplicaciones de funciones de Azure mediante Azure Monitor en un solo panel.

Arquitectura

En el diagrama se ilustran varias máquinas virtuales (VM) locales que se conectan a Azure Functions en regiones diferentes. Los desarrolladores supervisan sus aplicaciones de función mediante Azure Monitor.

Descargue un archivo Visio de esta arquitectura.

Componentes

La arquitectura consta de los siguientes componentes:

  • Azure Functions . Azure Functions es una plataforma como servicio (PaaS) sin servidor que ejecuta un pequeño código de una sola tarea, sin necesidad de que se ponga en marcha una nueva infraestructura. El plan Premium de Azure Functions agrega la capacidad de comunicarse con Azure Functions de forma privada a través de una red virtual.
  • Azure Virtual Network . Las redes virtuales de Azure son redes privadas basadas en la plataforma en la nube de Azure para que los recursos de Azure puedan comunicarse entre sí de forma segura. Los puntos de conexión de servicio de redes virtuales de Azure garantizan que los recursos de Azure solo se puedan comunicar a través de la red troncal de red virtual segura.
  • Red local. En esta arquitectura, la organización ha creado una red privada segura que conecta las distintas ramas. Esta red privada se conecta a sus redes virtuales de Azure mediante una conexión sitio a sitio.
  • Estaciones de trabajo de desarrolladores. En esta arquitectura, los desarrolladores individuales pueden trabajar en el código para Azure Functions exclusivamente en la red privada segura o desde cualquier ubicación remota. En cualquier escenario, los desarrolladores tienen acceso a Azure Monitor para consultar u observar las métricas y los registros de las aplicaciones de función.

Detalles del escenario

Los usos habituales de esta arquitectura incluyen:

  • Organizaciones con muchas ubicaciones físicas que están conectadas a una red virtual de Azure para comunicarse con Azure Functions.
  • Cargas de trabajo de gran crecimiento que usan Azure Functions de forma local y que mantienen la opción de usar Azure para las ráfagas inesperadas de trabajo.

Recomendaciones

Las siguientes recomendaciones sirven para la mayoría de los escenarios. Sígalas a menos que tenga un requisito concreto que las invalide.

Diseño de una arquitectura sin servidor

Las aplicaciones empresariales tradicionales tienden hacia una arquitectura de aplicación monolítica en la que una "solución" de código ejecuta toda la lógica de negocios de la organización. Con Azure Functions, el procedimiento recomendado es diseñar una arquitectura sin servidor en la que las funciones individuales realizan tareas únicas. Estas tareas únicas están diseñadas para ejecutarse rápidamente e integrarse en flujos de trabajo más grandes.

La arquitectura sin servidor en Azure Functions tiene muchas ventajas, entre las que se incluyen:

  • Las aplicaciones se pueden escalar automáticamente por funciones empresariales individuales en lugar de escalar toda la solución. De este modo, se puede ayudar a reducir los costos al escalar solo lo que necesita cada tarea para atender las cargas de trabajo existentes.
  • Azure Functions proporciona enlaces declarativos para muchos servicios de Azure, lo que reduce la cantidad de código que el equipo necesita escribir, probar y mantener.
  • Las funciones individuales se pueden reutilizar, lo que reduce la cantidad de código repetido necesario para soluciones empresariales de gran tamaño.

Ejecución de Azure Functions en el entorno local

Puede elegir que Azure Functions se ejecute en el entorno local en lugar de en Azure; por ejemplo:

  • Es posible que el equipo quiera ejecutar Azure Functions en una instalación local existente de Kubernetes.
  • En desarrollo, es posible que su equipo le resulte más fácil desarrollar localmente mediante la interfaz de la línea de comandos en lugar del editor en el portal.
  • Las funciones se ejecutarán localmente con el conjunto de herramientas instalado en máquinas virtuales locales.

Puede ejecutar Azure Functions local de tres maneras:

Conectividad de red

La creación de aplicaciones de función mediante el plan Premium abre la posibilidad de una conectividad entre redes muy segura entre las redes virtuales de Azure, Azure y las redes locales, y las redes de cada rama local.

Debe usar una conexión de sitio a sitio o de Azure ExpressRoute entre Azure Virtual Network y las redes locales. Esto permite que las ramas locales se comuniquen con las aplicaciones de función de Azure mediante sus puntos de conexión de servicio.

Además, cada red virtual de Azure también debe usar el emparejamiento de red virtual para habilitar la comunicación entre las aplicaciones de función individuales entre regiones.

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.

Escalabilidad

  • El código de Azure Functions debe diseñarse de modo que se pueda escalar horizontalmente infinitamente. Considere las condiciones de carrera, los archivos de concesión y otras cargas de trabajo que pueden provocar la ejecución de una función para bloquear otra. Considere también la posibilidad de escribir todo el código de Azure Functions para que sea sin estado y defensivo en su diseño.
  • En el caso de las aplicaciones de función que usan cuentas de Azure Storage en desencadenadores o enlaces, no reutilice la misma cuenta que se usa para almacenar metadatos sobre las aplicaciones de función y sus ejecuciones.

Disponibilidad

  • Normalmente, Azure Functions en el plan de consumo se puede reducir verticalmente a cero instancias. Cuando un evento nuevo desencadena una aplicación de función, se debe crear una nueva instancia con el código que se ejecuta en ella. La latencia asociada a este proceso se conoce como inicio en frío. El plan Premium de Azure Functions ofrece la opción de configurar instancias activadas previamente que están listas para las nuevas solicitudes. Puede configurar el número de instancias activadas previamente hasta el número mínimo de instancias de la configuración de escalabilidad horizontal.
  • Considere la posibilidad de tener varios planes Premium en varias regiones y usar Azure Traffic Manager para enrutar las solicitudes adecuadamente.

Facilidad de uso

  • Azure Functions debe estar en una subred vacía que sea una subred diferente de la de los demás recursos de Azure. Esto podría requerir más planeación al diseñar subredes para la red virtual.
  • Considere la posibilidad de crear proxies para cada recurso local al que Azure Functions pueda necesitar acceder. Esto puede proteger la integridad de la aplicación contra cualquier cambio de red local imprevisto.
  • Use Azure Monitor para observar el análisis y los registros para Azure Functions en toda la solución.

DevOps

  • Idealmente, las operaciones de implementación deben provenir de un solo equipo (Dev o DevOps), no de cada rama individual. Considere la posibilidad de usar un sistema de flujo de trabajo moderno como Azure Pipelines o las Acciones de GitHub para implementar aplicaciones de función de forma repetible en todas las regiones de Azure y potencialmente en el entorno local.
  • Use el sistema del flujo de trabajo para automatizar la reimplementación del código en Azure Functions a medida que el código se actualice y etiquete para su lanzamiento.
  • Use ranuras de implementación para probar Azure Functions antes de la inserción final en producción.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

  • Puede usar la calculadora de precios de Azure para calcular los costos.
  • El plan Premium de Azure Functions es necesario para la conectividad de Azure Virtual Network, el acceso a sitios privados, los puntos de conexión de servicio y las instancias previamente preparadas.
  • El plan Premium de Azure Functions factura por instancias en lugar de por consumo. El mínimo de una única instancia garantiza que habrá al menos una factura mensual incluso sin ejecuciones. Puede establecer un recuento máximo de instancias para controlar los costos de las cargas de trabajo que pueden aumentar de tamaño.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes

Consulte las siguientes instrucciones de arquitectura para Azure Functions:

Consulte las siguientes instrucciones de arquitectura para Azure Virtual Network: