Serverless y FaaS (función como servicio) son dos nuevas categorías en el  mundo de los servicios de computación en la nube. Ambos pueden ser útiles para ahorrar dinero, reorientar el tiempo de los desarrolladores, relegar la administración de la infraestructura y aprovechar la tecnología de la nube.

Aunque los términos FaaS y serverless a veces se usan indistintamente, no son lo mismo.

Serverless – ‘Sin servidor’: ¿por qué la confusión?

Serverless puede ser una palabra difícil de definir, como sucede con cualquier nuevo término tecnológico, porque “serverless” significa muchas cosas.

Puede invocar una imagen de una configuración completamente libre de servidor, que suena ideal pero que no es posible. En su lugar, es probable que signifique usar servidores externos para manejar parte de su carga informática, como los servicios en la nube que se encuentran en almacenes de datos gigantes en todo el mundo. Como tal, Serverless puede entenderse mejor como “fuera de vista, fuera de la mente”.

Sin embargo, puede abarcar más de una tecnología. Según el contexto, “sin servidor” puede referirse a computación sin servidor, arquitectura sin servidor o incluso codificación sin servidor.

Entendiendo Serverless

En un entorno informático tradicional la aplicación del servidor central gestiona todos los flujos, controles y la seguridad.

En esta nueva versión sin servidor, sin embargo, ninguna autoridad central equilibra estas ramas. En lugar de la orquestación, los entornos sin servidor enfatizan la coreografía. Los componentes individuales tienen una función más consciente de la arquitectura, no muy diferente a la de los microservicios, que pueden hacer que la aplicación sea más flexible y susceptible de cambiar, un beneficio clave para muchas de las empresas actuales.

En general, la computación sin servidor se divide en dos tipos, aunque existe cierta superposición. El primer tipo comprende aplicaciones que utilizan servicios de terceros alojados en la nube para administrar la lógica y el estado del servidor. Estas aplicaciones suelen utilizar un gran ecosistema de bases de datos y servicios de autenticación que dependen de la nube. Estos son generalmente conocidos como backend-as-a-service, o BaaS.

Entendiendo faas

FaaS es una categoría de servicios de computación en la nube que interrumpe la forma en que se han desarrollado las aplicaciones y los sistemas durante décadas, por lo que ahora está sonando de una manera que BaaS no había logrado.

En FaaS, la lógica del lado del servidor permanece en la responsabilidad del desarrollador de la aplicación, como en las arquitecturas tradicionales, pero la lógica del lado del servidor en realidad se ejecuta en contenedores informáticos sin estado. Estos contenedores son activados por un evento, a menudo efímero (que dura solo una innovación), y gestionados por el proveedor externo. Las opciones FaaS ampliamente utilizadas incluyen AWS Lambda, Google Cloud Functions, Microsoft Azure Functions y opciones de código abierto de Oracle e IBM.

Al igual que otras ofertas de servicio, FaaS es una plataforma de terceros que solo se paga cuando se utiliza. Esta plataforma puede permitir a los desarrolladores enfocarse en el diseño, ejecución y administración de las funcionalidades de la aplicación sin tener que enfocarse en construir y mantener una infraestructura de back-end. Es precisamente por esta razón que muchos desarrolladores adoptan FaaS: para centrarse más en el producto final y menos en la configuración que es inherente al diseño de aplicaciones tradicionales.

Además, FaaS no requiere que los desarrolladores asignen código a un marco o biblioteca específico, ya que el servicio de terceros sabe cómo manejar eso. La implementación en FaaS también es diferente de la arquitectura tradicional: en lugar de ejecutar aplicaciones de servidor, el código de frontend se carga en el servicio y el proveedor se encarga de las tareas de fondo, como el aprovisionamiento de recursos, la creación de instancias de máquinas virtuales y la administración de procesos.

Elegir FaaS o Serverless

No tiene que elegir entre uno u otro. Una distinción importante es que su equipo de TI puede emplear FaaS sin usar una arquitectura sin servidor. De hecho, una encuesta de agosto de 2018 indicó que más de la mitad de las compañías que utilizan las opciones de FaaS no están incorporando la informática sin servidor.

FaaS puede ofrecer soluciones más limitadas, de modo que puede reemplazar una parte o la totalidad de una aplicación con una funcionalidad FaaS que se ejecuta dentro de un contexto de evento o HTTP. Esta facilidad de implementación y agilidad significa que puede optar por los beneficios de FaaS, especialmente en casos de uso específicos o entornos de prueba, sin la revisión completa que puede acompañar a un enfoque verdaderamente sin servidor. Por otro lado, FaaS puede aumentar los costes de computación cuando se escala para tareas más grandes como la producción.

La computación sin servidor ofrece una funcionalidad mucho mayor que las opciones FaaS de pago, más pequeñas, en particular porque puede abarcar una variedad de tecnologías. Las opciones sin servidor pueden ofrecer algunos ahorros, aunque no está garantizado.

La flexibilidad es una compensación para partes móviles más complicadas. Serverless tiende a ser más complicado que FaaS, ya que es probable que esté ejecutando más componentes, tal vez a mayor escala. Aunque renunciar a parte de este control puede ser liberador, aún tendrá que controlar que todas las partes se alineen, un problema que probablemente no tuvo en su sistema tradicional.

La flexibilidad que obtendrá y el coste que puede ahorrar (si es cuidadoso) puede valer la pena por las complejidades adicionales, pero entender que FaaS y Serverless no son lo mismo es el primer paso vital para elegir la solución correcta.

 

Fuente de la noticia: BMC