Contacto



Marcas de Telefónica

Son Marcas de Telefónica

Serverless: ¿cómo y por qué beneficiarse de una nube sin servidores?

No hay duda al respecto: la gran cantidad de soluciones y arquitecturas diferentes, disponibles en un entorno de la nube parece ser infinita. La mayoría de las soluciones relacionadas con la nube se centran en evitar una complejidad excesiva y, de hecho, a veces esto se hace de tal manera que rompe los paradigmas que estamos dando por sentados durante mucho tiempo. Un ejemplo es el uso del modelo serverless. En pocas palabras, ¿imagina poder publicar una aplicación en la nube sin tener que preocuparse por los servidores o administrar recursos como el espacio en el disco, la memoria y el uso de la CPU? ¡Y se pone aún mejor! ¿Qué le parece que se le facturen exclusivamente los recursos que realmente ha utilizado y liberarse de una vez por todas de los gastos en recursos improductivos? Bueno, esta es una descripción del modelo sin servidor (serverless), otra opción en que la nube puede hacer que su negocio funcione más rápido, más simple y sea más rentable. 

Entonces, ¿qué es el modelo serverless? 

Comencemos con lo obvio: por supuesto, hay servidores y otros recursos informáticos en una solución basada en serverless, la diferencia es el hecho de que simplemente ya no son importantes para usted, si es un cliente de un proveedor de servicios en la nube (Cloud Services Provider). Pero esté seguro de que todavía hay un equipo de expertos que aseguran los niveles habituales de disponibilidad y resiliencia a los que estamos acostumbrados. 

Para ponerlo en términos más simples, la informática sin servidor es un modelo de ejecución en el que el proveedor de la nube funciona como el propio servidor, administrando y asignando dinámicamente los recursos informáticos según sea necesario. En este modelo, los costes no se basan en unidades adquiridas previamente, sino en los recursos que consume dinámicamente su aplicación. 

Ya en 2006, había proveedores en la nube que intentaron implementar el modelo FaaS (Function as a Service), por ejemplo, Google, con su Google App Engine, que permitía un modelo en el que la facturación se basaba en el uso de la aplicación, pero esta solución estaba limitada por un framework Python que no permitía la ejecución arbitraria de código. 

El primer proveedor importante de nube en ofrecer un verdadero modelo serverless fue Amazon, que en 2014 introdujo AWS Lambda, donde en lugar de cargar la aplicación en un contenedor o máquina virtual, los clientes simplemente subían el código en Lambda, que se encargaba de todo lo demás. El modelo era, de hecho, muy simple: la aplicación permanece inactiva, hasta que esté activada por el disparador apropiado, entonces Lambda comienza su ejecución. Una vez que la aplicación completa su tarea, se elimina del servicio de Lambda. Tan simple como eso. 

Reforzando el hecho obvio de que el modelo de serverless todavía utiliza servidores, se reveló, para sorpresa de nadie, que la fuerza impulsora detrás de AWS Lambda era la tecnología de contenedores. El verdadero cambio en este modelo fue el hecho de que AWS se encargaba de cargar el código en el contenedor y ejecutarlo. Con el éxito de este modelo, otros jugadores importantes de la nube siguieron la tendencia, por lo que Google, Microsoft, IBM y Oracle también han creado ofertas serverless.

Pros: 

  • Pague solo por lo que use: no hay lugar a dudas aquí, el modelo sin servidor puede ser mucho más rentable que otros modelos de la nube. Pagar solo por los recursos que consume su aplicación es mucho más inteligente que pagar por los recursos asignados que, en algunos casos, ni siquiera se usan por completo. En el modelo serverless, cuando su aplicación necesita realizar una tarea, el servidor la ejecuta (y se le factura por eso), una vez que la aplicación completa sus actividades, el servidor se detiene (y usted deja de pagar). Es difícil imaginar una forma más económica de utilizar la nube.
  • Menos tiempo para preocuparse por la administración del servidor: es bastante simple, en un modelo sin servidor, su equipo de TI no tendrá que preocuparse por la administración de los servidores en la nube, ya que todo lo gestiona el proveedor. Usando esta estrategia, además de la optimización de costes directos del consumo inteligente de recursos, también es posible reasignar a su personal de TI a otras actividades muy necesarias. 
  • Elasticidad: este es otro punto fuerte en el modelo sin servidor. Los recursos pueden asignarse dinámicamente, asegurándose de que no se produzcan problemas cuando, por ejemplo, su aplicación se encuentre en el pico de tráfico. Por ejemplo, imagine que ha creado una aplicación específicamente para un evento importante, como la contabilidad de votos en tiempo real, durante las elecciones presidenciales. Bueno, por supuesto que espera un número mucho mayor de visitantes el día de las elecciones. Usando un modelo sin servidor, a medida que aumenta el número de personas que acceden a su aplicación, se asignan más recursos; sin embargo, tan pronto como el número de usuarios disminuye, estos recursos se eliminan. Por supuesto, todo se hace de forma dinámica y, como se espera, solo se le cobrará por los recursos consumidos.

"En el modelo serverless, los costes no se basan en unidades adquiridas previamente, sino en los recursos que consume dinámicamente su aplicación"

Contras: 

  • Rendimiento: para las aplicaciones que se usan con menos frecuencia, el modelo sin servidor puede tener un poco más de latencia que ejecutar el código en un entorno dedicado. Esto se debe a que una aplicación que no está en uso se puede desactivar completamente, y una vez que se necesita de nuevo, tome un poco más de tiempo para comenzar. 
  • Ineficiente para tareas más largas: en el caso de aplicaciones que realizan tareas con mayor duración, el modelo sin servidor puede tener algunas limitaciones. Por ejemplo, AWS Lambda impone un tiempo de ejecución máximo por solicitud de 300 segundos (5 minutos). Después de ese tiempo se termina la tarea. Si su aplicación ejecuta tareas que requieren más tiempo que los límites del proveedor de la nube, todavía hay opciones como crear múltiples funciones coordinadas o incluso usar un servidor virtual para tareas de larga ejecución. Sin embargo, esto puede ser ineficiente y costar más que usar un entorno dedicado. 
  • Bloqueo de proveedores: una preocupación habitual durante una migración a la nube es el bloqueo de proveedores. No es nada diferente con el modelo sin servidor, después de todo, es el proveedor el que va a administrar cada recurso. Por ejemplo, imagine que ha implementado su aplicación en AWS Lambda y por alguna razón, su compañía ahora está migrando a las soluciones de Google. Bueno, además de realizar cambios en el código de su aplicación, es posible que también deba ocuparse de otros elementos importantes, como el control de acceso, el uso de la base de datos y el almacenamiento de datos. 
  • Seguridad y privacidad: es normal suponer que el modelo sin servidor es un enfoque más seguro. Hasta cierto punto, esto es verdad, después de todo, el proveedor de la nube ya se ocupa de aspectos como la aplicación de parches y la gestión de vulnerabilidades. Sin embargo, dado que hay más componentes involucrados que en una arquitectura tradicional, la superficie de ataque es más grande. Además, es importante recordar que no puede instalar ninguna solución de seguridad en el servidor o incluso en la red. En este caso, debe confiar en que su proveedor de nube implementa adecuadamente los controles de seguridad. Otro aspecto importante son las consideraciones de privacidad, ya que la mayoría de los entornos sin servidor se ejecutan en una nube pública, esto implica recursos compartidos y sus datos también pueden estar disponibles para el personal del proveedor de la nube. Ahora, es importante comprender que preocuparse por la seguridad y la privacidad es muy diferente de decir que el modelo de serverless que se ejecuta en una nube pública no es seguro. ¡Lo es! Simplemente entienda que, en algunos casos, donde existen requisitos de seguridad y privacidad más estrictos, es posible que desee considerar el uso de serverless en una nube privada o incluso on premise (¡Kubernetes le permite hacer eso!).

 

Conclusiones

En general, el modelo sin servidor puede ser de inmenso valor y es fácil de adoptar, es solo una cuestión de entender qué aplicaciones se benefician más y tener un proveedor confiable. Dado que muchas empresas ya están adoptando este modelo como su enfoque preferido, con la creación de estándares y la inclusión de más lenguajes de programación, la informática sin servidor será una de las mejores formas de ganar agilidad en el desarrollo/publicación de aplicaciones y al mismo tiempo implementar un enfoque rentable. Este es el verdadero el poder de las tecnologías en la nube.

 

Cláudio Dodt

Evangelista Cloud en Brazil

LinkedIn 

4c980585-2fc4-4f8b-9d33-8988fe0d557f