Decidir si la informática sin servidor es adecuada para sus necesidades empresariales
Para ayudarle a decidir si la informática sin servidor satisface sus necesidades, primero vamos a ver en qué consiste.
¿Qué es la informática sin servidor?
La informática sin servidor se puede considerar una función como servicio (FaaS), o bien un microservicio que se hospeda en una plataforma de nube. La lógica de negocios se ejecuta como funciones y no necesita aprovisionar ni escalar manualmente la infraestructura. El proveedor de nube administra la infraestructura. La aplicación se escala horizontalmente o se reduce verticalmente de manera automática en función de la carga. Azure tiene varias formas de crear este tipo de arquitectura. Los dos enfoques más comunes son Azure Logic Apps y Azure Functions, que son los métodos en los que nos centramos en este módulo.
¿Qué es Azure Functions?
Azure Functions es una plataforma de aplicaciones sin servidor. Permite que los desarrolladores hospeden lógica de negocios que se puede ejecutar sin aprovisionar infraestructura. Azure Functions proporciona escalabilidad intrínseca y solo se cobra por los recursos que se usan. Puede escribir el código de la función en el lenguaje que prefiera, como C#, Java, JavaScript, Python y PowerShell. También se admiten los administradores de paquetes como NuGet y npm, por lo que es posible usar bibliotecas populares en la lógica de negocios.
Ventajas de una solución de informática sin servidor
La informática sin servidor es una opción excelente para hospedar código de lógica de negocios en la nube. Con las ofertas sin servidor, como Azure Functions, puede escribir la lógica de negocios en el lenguaje que prefiera. El escalado se realizará automáticamente, no tendrá servidores que administrar y solo se le cobrará por lo que use, no por el tiempo reservado. Estas son algunas características adicionales de una solución sin servidor que se deben tener en cuenta.
Prevención de la sobreasignación de infraestructura
Supongamos que ha aprovisionado servidores de máquina virtual (VM) y los ha configurado con suficientes recursos para controlar los tiempos de carga máximos. Cuando la carga es ligera, es posible que pudiera pagar por infraestructura que no usa. La informática sin servidor ayuda a resolver el problema de la asignación mediante el escalado o la reducción vertical automáticamente y solo se facturará cuando la función procese trabajo.
Lógica sin estado
Las funciones sin estado son excelentes candidatos para el proceso sin servidor; las instancias de funciones se crean y destruyen a petición. Si es necesario el estado, se puede almacenar en un servicio de almacenamiento asociado.
Controladas por eventos
Las funciones se basan en eventos. Solo se ejecutan en respuesta a un evento (denominado "desencadenador"), como recibir una solicitud HTTP o agregar un mensaje a una cola. Configure un desencadenador como parte de la definición de la función. Este método simplifica el código al permitirle declarar de dónde provienen los datos (enlace de entrada/desencadenador) y dónde van (enlace de salida). No es necesario escribir código para ver colas, blobs, centros, etc. Puede centrarse únicamente en la lógica de negocios.
Las funciones pueden utilizarse en entornos de proceso tradicionales
Las funciones son un componente clave de la informática sin servidor, pero también son una plataforma de proceso general para ejecutar cualquier tipo de código. Si las necesidades de la aplicación cambian, puede tomar el proyecto e implementarlo en un entorno sin servidor. Esto le brinda la flexibilidad que necesita para administrar el escalado, ejecutar en redes virtuales e incluso aislar por completo las funciones.
Desventajas de una solución de informática sin servidor
El proceso sin servidor, tal como lo proporciona Azure Functions en el plan de consumo, no siempre será la solución adecuada para hospedar la lógica de negocios. Estas son algunas características de las funciones que pueden afectar a su decisión de hospedar los servicios en un proceso sin servidor.
Tiempo de ejecución
De manera predeterminada, las funciones tienen un tiempo de espera de 5 minutos. Se puede configurar a un máximo de 10 minutos. Si la función necesita más de 10 minutos para ejecutarse, puede hospedarla en una máquina virtual. Además, si el servicio se inicia con una solicitud HTTP y espera ese valor como una respuesta HTTP, el tiempo de espera se restringe aún más a 2,5 minutos. Sin embargo, también hay una opción denominada Durable Functions que le permite orquestar las ejecuciones de varias funciones sin tiempo de espera.
Frecuencia de ejecución
Otra característica es la frecuencia de ejecución. Si espera que los clientes ejecuten la función de manera continua, sería recomendable calcular el uso y el costo de usar las funciones consecuentemente. Podría ser más barato hospedar el servicio en una máquina virtual.
Durante el escalado, solo se puede crear una instancia de aplicación de función cada 10 segundos hasta para 200 instancias en total. Tenga en cuenta que cada instancia puede atender varias ejecuciones simultáneas, por lo que no hay ningún límite establecido en la cantidad de tráfico que una sola instancia puede controlar. Diferentes tipos de desencadenadores tienen diferentes requisitos de escalado, por lo que se recomienda investigar el desencadenador que elija y sus límites.