aproximadamente
Publicado el 08 de julio de 2020

Serverless: qué es y qué ventajas tiene

Serverless: qué es y qué ventajas tiene

La arquitectura Serverless, basada en la ejecución de aplicaciones y procesos en la nube, ha llegado para quedarse. El último informe The State of Securing Workloads de Alcide ha comprobado que el 28% de las empresas ya han incorporado este modelo a sus entornos de desarrollo y producción, y que tan solo un residual 20% sigue sin plantearse apostar por Serverless en un futuro cercano.

Los principales motivos para la adopción de Serverless, según este estudio, son el ahorro en los costes de operación y mantenimiento (39%), el acceso a funcionalidades más sofisticadas que las ofrecidas por los servidores individuales (29%), el uso de una nube híbrida para ejecutar aplicaciones (27%) o la curiosidad por probar una solución diferente y ver si satisface las necesidades de la compañía (10%).

Aplicaciones como la red social Snapchat o el juego de realidad aumentada Pokémon Go son ejemplos de éxito del uso de la arquitectura Serverless.

¿Qué es Serverless?

Serverless es un modelo de computación que prescinde de los servidores tradicionales y utiliza la nube como entorno para la ejecución de aplicaciones y procesos. En Serverless, los servidores pasan a un segundo plano, dejan de ser visibles para los y las desarrolladoras y su gestión corre a cargo del proveedor de servicios FaaS (Function as a Service), que es quien se ocupa de la administración y el mantenimiento.

La arquitectura Serverless facilita la vida de los y las profesionales del desarrollo, que pueden dejar de preocuparse de tareas como la asignación de los recursos del servidor. Con Serverless, el código se ejecuta en contenedores sin estado cada vez que se invoca la función apropiada, y la organización solo tiene que pagar al proveedor FaaS por el tiempo de uso de sus servicios.

Serverless (FaaS) se diferencia se diferencia de los modelos IaaS (Infraestructure as a Service) y PaaS (Platform as a Service) en que:

  • En IaaS, el prestador del servicio pone a disposición del cliente los servidores vacíos, y es este quien debe configurarlos y gestionarlos. El usuario abona una cantidad por el alquiler de estos servidores.
  • En PaaS, el proveedor administra los servidores, y el cliente paga una cuota por utilizarlos, sin tener en cuenta el tiempo efectivo durante el que su código se está ejecutando.

¿Qué ventajas tiene el uso de Serverless?

Confiar en Serverless como entorno en la nube para la ejecución de procesos en la organización, en detrimento de los servidores de uso exclusivo, trae consigo varias ventajas:

  1. Simplifica el escalado de la actividad, en cuanto a crecimiento y decrecimiento. Si durante cierto periodo baja el uso del servicio, los costes se ajustan al no tener que asumir los gastos de los periodos de hibernación. Si en un momento dado hace falta una capacidad extra, se puede disponer de ella sin necesidad de arduas implementaciones o complejos y costosos upgrades.
  2. Ayuda a reducir costes. Y lo hace ahorrando gastos tanto en infraestructura como en mano de obra. Como apuntábamos antes, con Serverless los y las especialistas en desarrollo pueden dedicar sus horas exclusivamente a la programación de nuevas funcionalidades. Adiós a tener que actualizar o instalar software en los servidores.
  3. Dinamiza los procesos internos y facilita la mejora continua. La flexibilidad de Serverless da pie a la autonomía y a la experimentación sin la obligación de implicar a un gran número de actores ni de efectuar una elevada inversión.

desarrollo-serverless

¿Serverless tiene desventajas?

Junto a todos estos beneficios, la adopción de Serverless presenta algunos inconvenientes que no hay que perder de vista:

  • Gran esfuerzo inicial para adaptar las estructuras de la organización en la fase de implementación.
  • Dependencia del proveedor FaaS que, a largo plazo, puede obstaculizar el cambio, al tener que modificar los lenguajes de programación y las funciones utilizadas para que se adecuen a los requisitos del nuevo prestador del servicio Serverless.

Principales proveedores de servicios Serverless

Los principales proveedores de servicios Serverless en la actualidad son:

  • AWS Lambda de Amazon. Probablemente, el más popular. Es compatible de forma nativa con Java, Go, PowerShell, Node.js, C#, Python y Ruby, y ofrece, mediante API Gateway, un servicio que permite crear, publicar, mantener y proteger todo tipo de API a cualquier escala.
  • Cloud Functions de Google. Su gran punto fuerte es la disponibilidad de recursos formativos propia del universo Google. En Google Cloud también es posible acometer proyectos de machine learning con TensorFlow.
  • Azure Functions de Microsoft. Admite funciones escritas en C#, Java, JavaScript, Python y PowerShell. Presume de los altos niveles de seguridad que proporciona, garantizados por los sistemas de detección y control de amenazas de Microsoft.

Para las compañías que se quieran iniciar en el mundo Serverless, lo positivo es que estos servicios suelen proponer modelos de suscripción freemium: las primeras peticiones de ejecución son gratis; y, una vez superado el primer millón, el proveedor carga un coste de unos céntimos por cada petición.


 

Etiquetas: Informática

Artículos Relacionados

¿Qué es el overfitting en machine learning y cómo evitarlo?

En cierto punto del aprendizaje del machine learning, la mayoría de los principiantes se encuentra con el mismo problema. Y entonces, surge una pregunta unánime. ¿Por qué, con el ...

Topics: Informática

Técnicas de desarrollo seguro de software

¿A que te suena esta historia? Trabajas como desarrollador o desarrolladora en un proyecto de diseño e implantación de software. Los plazos de entrega son ajustados y, en ...

Topics: Informática

HTTP/3, el protocolo que nos traerá (por fin) un Internet más rápido

Desde su nacimiento en los años 80 del siglo pasado, Internet ha utilizado siempre TCP como columna vertebral de su HTTP (Hypertext Transfer Protocol), el protocolo que organiza ...

Topics: Informática