La función como servicio (FaaS) es un modelo de computación en la nube en el que desarrollas pequeños fragmentos de código modular llamados funciones, y un proveedor de la nube los ejecuta en respuesta a eventos específicos. En este modelo, te enfocas por completo en la lógica del código, mientras que el entorno de ejecución sin servidores administra la infraestructura. El proveedor de la nube se encarga del hardware físico, el sistema operativo y el software del servidor web.
Esto difiere de las aplicaciones tradicionales basadas en servidores o las arquitecturas monolíticas. En esos modelos más antiguos, por lo general, administras un servidor que se ejecuta de forma continua, incluso cuando nadie usa tu aplicación. Con FaaS, la plataforma ejecuta tu código solo cuando un evento específico lo activa. Esto permite una forma eficiente de crear aplicaciones, ya que solo consumes recursos cuando es necesario.
Es útil comprender cómo se compara FaaS con otros modelos de servicios en la nube, como la plataforma como servicio (PaaS) y la infraestructura como servicio (IaaS). Si bien FaaS pertenece a la categoría más amplia de "sin servidores", en la que el proveedor administra los servidores, ofrece un nivel distinto de abstracción. Sin servidores abarca cualquier servicio, como bases de datos, almacenamiento o procesamiento, en el que el proveedor administra los servidores. FaaS es específicamente la parte de computación sin servidores que ejecuta código en respuesta a eventos.
Función | FaaS (función como servicio) | PaaS (plataforma como servicio) | IaaS (infraestructura como servicio) |
Unidad principal | Una sola función (fragmento de código pequeño) | Una aplicación completa | Máquinas virtuales (VMs) |
Escalabilidad | Escalamiento instantáneo por solicitud (incluido a cero) | Más lento, se escala según las reglas configuradas | Ajuste de escalamiento automático manual o preconfigurado |
Modelo de precios | Pago por tiempo de ejecución (milisegundos) | Paga por los recursos en ejecución (tiempo de actividad) | Paga por los recursos asignados (tamaño/tiempo) |
Mantenimiento | Ninguna (el proveedor administra todo) | Menor (el proveedor administra el SO y el entorno de ejecución) | Mayor (administras el SO, las actualizaciones y los parches) |
Ideal para | Tareas basadas en eventos, código de pegamento, procesamiento de datos | Apps web, servicios de larga duración | Apps heredadas, infraestructura personalizada compleja |
Función
FaaS (función como servicio)
PaaS (plataforma como servicio)
IaaS (infraestructura como servicio)
Unidad principal
Una sola función (fragmento de código pequeño)
Una aplicación completa
Máquinas virtuales (VMs)
Escalabilidad
Escalamiento instantáneo por solicitud (incluido a cero)
Más lento, se escala según las reglas configuradas
Ajuste de escalamiento automático manual o preconfigurado
Modelo de precios
Pago por tiempo de ejecución (milisegundos)
Paga por los recursos en ejecución (tiempo de actividad)
Paga por los recursos asignados (tamaño/tiempo)
Mantenimiento
Ninguna (el proveedor administra todo)
Menor (el proveedor administra el SO y el entorno de ejecución)
Mayor (administras el SO, las actualizaciones y los parches)
Ideal para
Tareas basadas en eventos, código de pegamento, procesamiento de datos
Apps web, servicios de larga duración
Apps heredadas, infraestructura personalizada compleja
El flujo de trabajo de FaaS puede ser simple y eficiente. A menudo, se basa en un modelo basado en eventos en el que las acciones activan tu código.
FaaS es versátil y se adapta bien a muchas arquitecturas de aplicaciones modernas.
Puedes dividir las aplicaciones complejas en piezas pequeñas e independientes que se comunican a través de eventos.
FaaS funciona bien para tareas como cambiar el tamaño de una imagen inmediatamente después de que un usuario la sube o limpiar los datos a medida que llegan.
Puedes usar funciones para potenciar la lógica detrás de las apps para dispositivos móviles o procesar datos de dispositivos de Internet de las cosas (IoT).
Las tareas que se pueden dividir en muchos trabajos pequeños y simultáneos, como la codificación de video, se ejecutan de manera muy eficiente en FaaS.
Puedes reemplazar las tareas programadas tradicionales por funciones que se ejecutan en momentos específicos para realizar tareas de mantenimiento o generar informes.
Adoptar la tecnología de nube FaaS ofrece varios beneficios para los desarrolladores y las empresas.
Escalamiento automático e instantáneo
Tu aplicación puede manejar un aumento repentino en el tráfico, desde un usuario hasta miles, sin que tengas que configurar nada manualmente.
Control de costos superior (pago por uso)
Solo pagas cuando se ejecuta tu código, lo que puede generar ahorros de costos significativos en comparación con el pago de servidores inactivos.
Aumento de la velocidad de los desarrolladores
Los desarrolladores pueden escribir código y, luego, implementarlo rápidamente sin perder tiempo en la administración de servidores o la configuración de la infraestructura.
Enfócate en el código de la aplicación, no en la administración de la infraestructura
Los equipos pueden dedicar su energía a crear valor para los clientes en lugar de aplicar parches a los servidores o administrar sistemas operativos.
Alta disponibilidad y resiliencia
Las plataformas FaaS suelen ejecutar tu código en varias zonas, por lo que, si falla un área, tu aplicación sigue funcionando.
Uno de los problemas más comunes que enfrentan los desarrolladores con FaaS es el "inicio en frío". Cuando tu función no se ejecuta por un tiempo, el proveedor de la nube desactiva el entorno para ahorrar recursos. La próxima vez que un evento active esa función, habrá un pequeño retraso mientras el sistema configura el entorno y carga tu código. Este retraso, llamado inicio en frío, puede ralentizar tu aplicación.
Si tu aplicación requiere respuestas instantáneas, puedes seguir estos pasos para minimizar la latencia.
Función como servicio describe un modelo de computación en la nube, y Cloud Run Functions es el producto de Google Cloud que da vida a este concepto. Funciona como una solución FaaS escalable y con pago por uso que te permite ejecutar código sin tener que administrar servidores.
Cuando eliges Cloud Run Functions, adoptas un enfoque sin servidores en el que Google Cloud se encarga de la infraestructura subyacente. Tú proporcionas el código y la plataforma administra el entorno de ejecución, las actualizaciones del sistema operativo y las capacidades de ajuste de escalado automático. Esta integración significa que puedes implementar funciones de un solo propósito que responden a eventos, como solicitudes HTTP o cambios de datos, sin aprovisionar una sola máquina virtual.
Este servicio combina la simplicidad de la implementación de funciones con la potencia de la tecnología de Cloud Run. Los desarrolladores pueden crear aplicaciones basadas en eventos con lenguajes como Python, Node.js, Go, Java, .NET y Ruby. Como se ejecuta en la sólida infraestructura de Google, tus funciones pueden escalar de 0 a miles de instancias automáticamente para satisfacer la demanda.
Para obtener más información sobre la función como servicio y la computación sin servidores, puedes explorar estos recursos.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.