La función como servicio (FaaS) es un modelo de cloud computing en el que desarrollas pequeños fragmentos de código modular llamados funciones, y un proveedor de servicios en la nube los ejecuta en respuesta a eventos específicos. En este modelo, te centras por completo en la lógica del código, mientras que el tiempo de ejecución sin servidor gestiona la infraestructura. El proveedor de servicios en 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 antiguos, normalmente se gestiona un servidor que se ejecuta de forma continua, incluso cuando nadie usa la aplicación. Con FaaS, la plataforma ejecuta tu código solo cuando un evento específico lo activa. Esto permite crear aplicaciones de forma eficiente, ya que solo se consumen recursos cuando es necesario.
Es útil entender cómo se compara FaaS con otros modelos de servicios en la nube, como plataforma como servicio (PaaS) e infraestructura como servicio (IaaS). Aunque FaaS pertenece a la categoría más amplia de "sin servidor", en la que el proveedor gestiona los servidores, ofrece un nivel de abstracción distinto. La computación sin servidor abarca cualquier servicio (como bases de datos, almacenamiento o computación) en el que el proveedor gestiona los servidores. FaaS es específicamente la parte de computación sin servidor 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 (VM) |
Escalabilidad | Escalado instantáneo por solicitud (incluso a cero) | Más lento, se escala en función de las reglas configuradas | Autoescalado manual o preconfigurado |
Modelo de precios | Pago por tiempo de ejecución (milisegundos) | Paga por los recursos en ejecución (tiempo de funcionamiento) | Paga por los recursos asignados (tamaño o tiempo) |
Mantenimiento | Ninguna (el proveedor se encarga de todo) | Inferior (el proveedor gestiona el SO o el entorno de ejecución) | Mayor (tú gestionas el SO, las actualizaciones y los parches) |
Usos recomendados | Tareas basadas en eventos, código de pegamento, procesamiento de datos | Aplicaciones web y servicios de larga duración | Aplicaciones antiguas e infraestructuras personalizadas complejas |
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 (VM)
Escalabilidad
Escalado instantáneo por solicitud (incluso a cero)
Más lento, se escala en función de las reglas configuradas
Autoescalado manual o preconfigurado
Modelo de precios
Pago por tiempo de ejecución (milisegundos)
Paga por los recursos en ejecución (tiempo de funcionamiento)
Paga por los recursos asignados (tamaño o tiempo)
Mantenimiento
Ninguna (el proveedor se encarga de todo)
Inferior (el proveedor gestiona el SO o el entorno de ejecución)
Mayor (tú gestionas el SO, las actualizaciones y los parches)
Usos recomendados
Tareas basadas en eventos, código de pegamento, procesamiento de datos
Aplicaciones web y servicios de larga duración
Aplicaciones antiguas e infraestructuras personalizadas complejas
El flujo de trabajo de FaaS puede ser sencillo 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 partes pequeñas e independientes que se comunican mediante eventos.
FaaS es una buena opción para tareas como cambiar el tamaño de una imagen inmediatamente después de que un usuario la suba o limpiar los datos a medida que llegan.
Puedes usar funciones para implementar la lógica de las aplicaciones móviles o procesar datos de dispositivos del Internet de las cosas (IoT).
Las tareas que se pueden dividir en muchos trabajos pequeños y simultáneos, como la codificación de vídeo, se ejecutan de forma muy eficiente en FaaS.
Puedes sustituir las tareas programadas tradicionales por funciones que se ejecuten en momentos concretos para realizar tareas de mantenimiento o generar informes.
Adoptar la tecnología en la nube FaaS ofrece varias ventajas para los desarrolladores y las empresas.
Escalado automático e instantáneo
Tu aplicación puede gestionar un aumento repentino del tráfico, desde un usuario hasta miles, sin que tengas que configurar nada manualmente.
Control de costes superior (pago por uso)
Solo pagas cuando se ejecuta tu código, lo que puede suponer un ahorro de costes significativo en comparación con el pago de servidores inactivos.
Mayor velocidad de desarrollo
Los desarrolladores pueden escribir código y desplegarlo rápidamente sin tener que dedicar tiempo a la gestión de servidores ni a la configuración de la infraestructura.
Céntrate en el código de la aplicación, no en la gestión de la infraestructura
Los equipos pueden dedicar sus esfuerzos a crear valor para los clientes en lugar de parchear servidores o gestionar sistemas operativos.
Alta disponibilidad y resiliencia
Las plataformas FaaS suelen ejecutar tu código en varias zonas, por lo que, si falla una zona, tu aplicación sigue funcionando.
Uno de los problemas más comunes a los que se enfrentan los desarrolladores con FaaS es el arranque en frío. Cuando tu función no se ha ejecutado durante un tiempo, el proveedor de servicios en 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, denominado "arranque en frío", puede ralentizar tu aplicación.
Si tu aplicación requiere respuestas instantáneas, puedes seguir estos pasos para minimizar la latencia.
La función como servicio describe un modelo de cloud computing, y Cloud Run functions es el producto de Google Cloud que hace realidad este concepto. Es una solución de FaaS escalable y de pago por uso que te permite ejecutar código sin necesidad de gestionar servidores.
Si eliges las funciones de Cloud Run, adoptas un enfoque sin servidor en el que Google Cloud se encarga de la infraestructura subyacente. Tú proporcionas el código y la plataforma se encarga del entorno de ejecución, las actualizaciones del sistema operativo y las funciones de escalado automático. Esta integración te permite desplegar funciones de un solo propósito que responden a eventos, como solicitudes HTTP o cambios en los datos, sin aprovisionar una sola máquina virtual.
Este servicio combina la sencillez 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 servidor, puedes consultar estos recursos.
Empieza a crear en Google Cloud con 300 USD en crédito sin coste y más de 20 productos Always Free.