Funciones como Servicio (FaaS): Guía para principiantes

Funciones como Servicio (FaaS): Guía para principiantes

  • Nube
6 min de lectura Actualizado Dec 3, 2020

Puntos clave: Las funciones como servicio (FaaS) permiten a los desarrolladores Crea y desplegar funciones en la nube independientes, mejorando la escalabilidad y la flexibilidad. Esta arquitectura serverless soporta varios lenguajes de programación y puede ser activada por eventos, promoviendo la eficiencia en costes.

  • FaaS permite la ejecución bajo demanda sin dependencia de hardware.
  • Los principales beneficios incluyen la escalabilidad y la flexibilidad de los desarrolladores.

Los ordenadores son bastante sencillos. Con ellos, te pueden almacena información, mover información y hacer cosas con esa información. Los servicios han surgido para ayudar a las personas gestiona las tres actividades a través de:

  • Centros de datos
  • Seguridad de red
  • Aplicaciones de software

Funciona como Servicio (FaaS) son las tiendas boutique de ropa del mundo del software. Cada función realiza una operación muy específica. Esto es lo que te necesitas saber sobre FaaS y cómo te pueden utiliza ellas.

¿Qué son funciones?

Primero, entendamos las funciones. Una función define un procedimiento para transformar un elemento en otro. La función permanece estática, mientras que las variables que pasan por ella pueden variar.

La llegada de los servicios en la nube ha permitido Functions as a Service, una de las muchas ofertas de servicio que la nube ha hecho posible.

¿Cuáles son las funciones como servicio?

Las funciones como servicio ofrecen te (y a tu organización) la capacidad de:

  • Crea funciones de alta calidad que la gente no pueda escribir por sí misma.
  • Convierte esa función, o conjunto de funciones, en un servicio para que la gente lo utilice.

Funciones como Servicio coloca una función en una instancia en la nube, haciéndola disponible para utiliza desarrolladores, aplicaciones y otras funciones. Cuando te escribe una función en una instancia en la nube, esa función puede servirse a cualquier ordenador sin depender del hardware o software del sistema del usuario para que su servicio funcione.

Es como pedir comida para llevar en un restaurante: no tienen que depender de las herramientas de tu cocina para preparar una comida deliciosa.

Las funciones en la nube permiten:

  • La función de trabajar en los recursos de la nube, no en el ordenador individual
  • El código debe escribirse en cualquier lenguaje
  • El servicio al que se accede en cualquier lugar con conexión de red

Estas funciones son ganando más frecuencia en el aprendizaje automático, donde el tiempo de modelado de ML, los recursos de desarrollo y el talento son muy valiosos y el resultado de sus esfuerzos resulta en una función difícil de reproducir y útil para las personas. Un ejemplo de un FaaS de ML están GPT-3 de Open-AI: te puede acceder a él mediante una API REST.

Cómo funciona FaaS

Las funciones pueden ser accedidas mediante uno de varios disparadores que te Define al te Crea la función. Por utiliza en una aplicación, las funciones pueden ocurrir en eventos que ocurren en la base de datos. Por ejemplo, una función puede activarse cuando un nuevo elemento están escrito en una base de datos, cambiado o eliminado de la base de datos.

Una función "en el evento" podría enviar un correo electrónico a un usuario cuando se están creado su cuenta. También se podría escribir una función para enviar una notificación a un usuario, o a un grupo de usuarios, en una sala de chat cuando se haya escrito un nuevo mensaje en la sala (equivalente a una nueva escritura en la base de datos).

Una función recibe algunas entradas y devuelve una salida, así que para utiliza la función, te tendrá que saber:

  1. El esquema de datos de la entrada para que la función funcionara correctamente procesaba los datos de entrada.
  2. El esquema de datos de la salida te saber qué buscar en los datos.

Las funciones variarán completamente de utiliza caso a utiliza caso. Aquí son algunos ejemplos:

  • Una función podía tomar una entrada de una imagen y generar una etiqueta de gato o perro.
  • Una función podía tomar la entrada de un tema y generar una secuencia de palabras.
  • Una función podría captar la URL de un vídeo de YouTube y generar un JSON con todas las estadísticas del vídeo.
  • Una función podía tomar como entrada un documento de Word y generar un PDF formateado.

Los grandes proveedores de la nube tendrán kits de desarrollo de software (SDK) diseñados para interactuar con sus funciones. Si te quisiera escribir una función y permitir que otras empresas la utiliza, te puede exponer la función a través de un endpoint, normalmente una API REST o, simplemente, una URL.

Ventajas de FaaS

Los dos mayores beneficios de FaaS son la escalabilidad general y la flexibilidad para el desarrollador.

Escalabilidad

Una función en la nube (especialmente con la arquitectura Kubernetes) puede escalar para adaptarse a tantos usuarios como necesite. También escala de forma independiente de otros servicios.

Si una función de búsqueda se vuelve repentinamente más popular que una función alfabética, la función de búsqueda puede escalar por separado del alfabético, permitiendo ofrecer el servicio a los clientes, mientras ahorra costes pagando solo por los recursos de la propia función de búsqueda.

Esta escalabilidad significa:

  • te no paga por recursos inactivos.
  • Hay menos logística son los recursos en la nube gestiona servidores.

Elección del promotor

FaaS permite a los desarrolladores trabajar en cualquier lenguaje de programación que son familiar. Debido al framework de contenedores en el que operan la mayoría de los desarrolladores, te no tienen que determinar el sistema operativo principal de tu cliente objetivo ni adaptar tus habilidades de desarrollo para cumplirlos.

Esto también abre tu servicio a mucha más gente porque la comunicación no se traduce de sistema operativo a sistema operativo.

Desventajas de FaaS

Los inconvenientes de las funciones como servicio son la falta de transparencia en la codificación y la organización de la base de código.

Transparencia de codificación

Probar código en la nube todavía no está totalmente desarrollado. Los errores pueden ser más difíciles de detectar que escribir código y ejecutarlo localmente.

En la mayoría de los sistemas en la nube actuales, no están una buena forma de probar la operatividad de una función hasta que se están desplegada. Esto requiere o:

  • Más tiempo de prueba
  • Desarrolladores más capacitados para detectar errores antes de desplegar

Organización de la base de código

Configurar Funciones como Servicio crea una nueva necesidad: organizar funciones de forma modular. Puede ser difícil llevar el control de las funciones cuando te has desplegado muchas.

Google lanzó recientemente la suite Firebase Local Emulator para ayudar a los desarrolladores a probar sus aplicaciones localmente. Probablemente otros también lo hayan hecho. Esto solo demuestra que son intentando mejorar las interfaces en las que los desarrolladores interactúan con el framework de computación en la nube.

Cómo Crea y gestiona FaaS

Las funciones pueden desplegarse en todos los grandes proveedores de servicios en la nube. Como las personas tendrán que hacer ping a la función, el proveedor de servicios puede:

  • Crea restricciones de acceso a la función
  • Cobrar por su utiliza
  • Medir la actividad de un usuario (es decir, 20 usos al día)
  • Ten una buena idea de los costes de la función

Creación de una función

te pueden Crea una función desde la interfaz gráfica o desplegarla desde la línea de comandos. Cada uno de los principales proveedores de la nube están mejorando sus interfaces para Permite acceso a los no desarrolladores que pueden interactuar con el proceso.

Al crear una función, generalmente te dispones de cinco opciones para elegir y Define:

  1. Nombre de la función
  2. Región
  3. Tipo de disparador
  4. Asignación de memoria
  5. Valor de tiempo de espera

Entonces la instancia solo necesita el código. Aquí está en GCP:

Gestión de una función

Después de desplegarla, te puede gestiona una función de una lista como esta:

Una vez están desplegado, las herramientas de monitorización de Google exponen mucha información en el contenedor de la función:

  • Número de invocaciones
  • Tiempo de ejecución
  • Utilización de memoria
  • Instancias activas
  • Errores
  • Troncos
(Un gráfico de invocaciones de funciones en GCP)

Y así es como es el panel de funciones en GCP:

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Nube

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.