La función como servicio (FaaS) es un servicio de computación en la nube que permite a los clientes ejecutar código en respuesta a eventos, sin administrar la compleja infraestructura típicamente asociada con la creación y el lanzamiento de aplicaciones de microservicios.
Alojar una aplicación de software en Internet normalmente requiere aprovisionar y gestionar un servidor físico o virtual, así como gestionar un sistema operativo y procesos de alojamiento de servidor web. Con FaaS, el proveedor de servicios en la nube maneja automáticamente el hardware físico, el sistema operativo de la máquina virtual y la gestión del software del servidor web. Esta característica permite a los desarrolladores centrarse únicamente en funciones individuales en el código de su aplicación.
A menudo se confunde FaaS y sin servidor, pero lo cierto es que FaaS es en realidad un subconjunto de las funciones sin servidor.
La informática sin servidor se centra en cualquier categoría de servicio, ya sea computación, almacenamiento, base de datos, mensajería y gateways de API donde la configuración, gestión y facturación de los servidores son invisibles para el usuario.
Sin embargo, FaaS, a pesar de ser posiblemente la tecnología más central en las arquitecturas sin servidor, se centra en el paradigma informático basado en eventos, donde el código de aplicación o los contenedores solo se ejecutan en respuesta a eventos o solicitudes.
FaaS es una herramienta valiosa para la migración eficiente y rentable de aplicaciones a la cloud. Estos son algunos beneficios más:
Existen varias prácticas recomendadas que puede seguir para facilitar el despliegue y hacer más efectivo el uso de FaaS:
Debido a que permite que las transacciones se aíslen y escalen fácilmente, FaAs es ideal para cargas de trabajo de gran volumen e increíblemente paralelas. También se puede utilizar para crear sistemas backend o para actividades como el procesamiento de datos, la conversión de formato, la codificación o la agregación de datos.
FaaS también es una buena herramienta para aplicaciones sitio web, backends, procesamiento de datos o flujos, o para crear chatbots en línea o backends para dispositivos IoT. FaaS puede ayudarle a gestionar y utilizar servicios de terceros. Si está considerando el desarrollo de aplicaciones de Android, por ejemplo, puede adoptar un enfoque FaaS para mantener sus costos bajo control. Debido a que solo se le cobra cuando su aplicación se conecta a la nube para una función específica, como el procesamiento por lotes, los costos pueden ser considerablemente más bajos que si se usara un enfoque tradicional.
FaaS también puede impulsar drásticamente el rendimiento informático. Por ejemplo, dos estudiantes recientemente trabajaron con ingenieros de IBM para explorar cómo usar las funciones de IBM Cloud para simulaciones de Monte Carlo (métodos matemáticos utilizados para estimar los resultados futuros de ciertos eventos difíciles de predecir) para estimar los precios de las acciones. Las simulaciones de Monte Carlo se consideran una importante carga de trabajo informática de alto rendimiento.
La combinación de Monte Carlo e IBM Cloud Functions permitió al equipo ejecutar cálculos a gran escala y enfocarse en la lógica empresarial. Con FaaS, el equipo completó toda una simulación de Monte Carlo en aproximadamente 90 segundos con 1000 invocaciones simultáneas. Comparativamente, ejecutar el mismo flujo en una computadora portátil con cuatro núcleos de CPU tomó 247 minutos y casi el 100 % de utilización de la CPU.
FaaS, PaaS (plataforma como servicio), contenedores y máquinas virtuales (MV) desempeñan un papel fundamental en el ecosistema sin servidor. Debido a que FaaS es el elemento más central y definitivo de la pila sin servidor, vale la pena explorar cómo FaaS difiere de otros modelos comunes de cómputo en el mercado actual en todos los atributos clave:
Kubernetes y KNative son una implementación de la "plomería" detrás de FaaS. Kubernetes es una herramienta de orquestación de contenedores de código abierto que es crítico para la administración de aplicaciones en la nube. Knative le permite ejecutar un clúster sin servidor dentro de Kubernetes.
La combinación de KNative y Kubernetes permite aprovechar las funciones de Kubernetes, como monitoreo, seguridad, registro y autenticación, y combinarlas con los beneficios de KNative, como la compilación automática de contenedores, la portabilidad completa y el funcionamiento en entornos híbridos.
Los creadores de esta tecnología consideraban que los desarrolladores no deberían tener que elegir entre funciones sin servidor y contenedores al construir aplicaciones en la nube. El objetivo era aumentar la disponibilidad y la coherencia de los contenedores con el potente escalado y el acceso bajo demanda de funciones sin servidor.
Utilice nuestros servicios en la nube, impulsados por nuestra plataforma IBM Consulting Advantage, para acelerar su transición hacia la nube híbrida, generar rentabilidad, aumentar la productividad y la sostenibilidad y acelerar el tiempo de comercialización.
El alojamiento en servidores dedicados de IBM proporciona aislamiento, control y seguridad totales para cargas de trabajo de misión crítica con opciones personalizables.
IBM Cloud Virtual Server for VPC es una familia de servidores virtuales Intel x86, IBM Z e IBM LinuxONE creados en IBM Cloud Virtual Private Cloud.