Personas en torno a una mesa trabajando

Serverless computing: todo lo que necesitas saber sobre este nuevo paradigma informático

Hay una tecnología que está presente en la ejecución de casi todas las actividades que realizamos en Internet: el cloud computing o computación en la nube. El almacenamiento en la nube consiste en guardar información que maneja una organización o empresa en servidores externos a la misma y a los cuales, la propia compañía puede acceder en cualquier momento y de manera remota. Por ejemplo, cuando accedes a tu información bancaria estás haciendo uso del cloud computing sin darte cuenta.

La computación en la nube no solo ha otorgado a las empresas una mayor capacidad de almacenamiento, sino también potencia de cálculo. Solo en España, en el primer trimestre de 2021, el 32,4% de las organizaciones de 10 o más empleados compraron servicios en la nube, según la Encuesta sobre el uso de TIC y del comercio electrónico en las empresas. Estos datos demuestran que las compañías actuales siempre buscan nuevas formas de mejorar sus procesos para lograr mejorar su productividad y reducir los costes de despliegue y gestión de sus aplicaciones y/o servicios. Como es el caso, del uso de la nube, ya que ofrece una mayor seguridad de sus datos, además de un mayor rendimiento.

En ese escenario, en los últimos años se ha comenzado a hablar también sobre un nuevo paradigma informático: serverless computing o computación sin servidor. Contrariamente a lo que significa, no se trata de una arquitectura sin servidor, sino que los desarrolladores de software -los responsables de desplegar las aplicaciones en la nube, que podrían considerarse clientes del proveedor del cloud (Amazon, Google, Salesforce, etc.-, no tienen que preocuparse de configurar o gestionar los servidores porque de esas tareas se encarga el proveedor de la nube.

A pesar de que esta computación sin servidor lleva años en el mercado, no ha sido hasta ahora cuando realmente ha alcanzado un mayor auge. Desde el área de Research de Telefónica, Eduard Marin, junto con otras personas, investigan en torno a los beneficios y desventajas que puede acarrear este tipo de tecnología para las empresas. «Nuestro objetivo es avanzar significativamente en el estado del arte para hacer que la computación sin servidor sea mucho más segura de lo que es ahora«, afirma Eduard.

¿Qué es el serverless computing?

Cuando hacemos mención de la computación sin servidor, nos estamos refiriendo a un nuevo paradigma que en un futuro es probable que se convierta en la forma dominante de desplegar aplicaciones en la nube. Siendo aplicable al edge computing, es decir, cuando acercamos el procesamiento lo más cerca de donde los datos están siendo generados.

En la computación sin servidor, la lógica de la aplicación se divide en un conjunto de funciones pequeñas, efímeras y sin estado que se comunican entre sí y con varios servicios en la nube (por ejemplo, servicios de almacenamiento) para llevar a cabo sus tareas. Las arquitecturas sin servidor actuales suelen estar basadas en eventos. De esta forma, las funciones pueden ejecutarse al recibir una amplia gama de eventos. Como sucede cuando se añade un nuevo dato a una base de datos, al recibir un correo electrónico o al obtener una nueva medición de un sensor, entre otros. 

serverless computing
Imagen de Brand Factory.

El modelo serverless computing se separa de los sistemas monolíticos y de los microservicios, ofreciendo una forma de pago por los recursos que se consume cada aplicación. Una diferencia totalmente notable con los anteriores modelos de la nube, donde los usuarios pagan una cantidad fija por los recursos asignados (independientemente de los recursos que la aplicación consuma). Además, este ecosistema se desarrolla según las necesidades de la organización por lo que no es necesario realizar un desembolso grande de capital.

«Actualmente, hay muchas investigaciones que se centran en analizar las propiedades que ofrece serverless y mejorarlo aún más para poder soportar un número mayor de aplicaciones. Nuestro trabajo se centra en investigar la seguridad que ofrece este modelo sin servidores.

Equipo de Research de Telefónica.

2 modelos de serverless computing

En esa línea, gracias a la eficacia del método serverless a día de hoy podemos distinguir entre dos tipos de arquitecturas: Function as a Services (FaaS) y Backend as a Services (BaaS).

  • BaaS es un servicio que automatiza el desarrollo del back-end, a través de servicios y aplicaciones de terceros. La idea central detrás de BaaS es ofrecer a los desarrolladores de software un conjunto de servicios y herramientas (bases de datos, APIs, almacenamiento de archivos, etc.) para facilitar y acelerar el desarrollo de aplicaciones móviles y web.
  • FaaS es un modelo que se centra en permitir que los desarrolladores de software desplieguen y ejecuten sus propias funciones en el cloud -aquí, las funciones también pueden utilizar servicios adicionales, como los ofrecidos en BaaS-. Por el momento, FaaS es considerado el modelo serverless más dominante.

Ventajas de implantar un modelo de serverless computing

La implantación de la computación sin servidor ofrece numerosas ventajas al usuario. Algunas de ellas ya las hemos ido mencionando a lo largo del artículo, otras son las siguientes:

  • El modelo serverless permite a los desarrolladores de software externalizar toda la gestión de la infraestructura, así como las tareas operativas a los proveedores del cloud, permitiendo que se centren en escribir el código de sus aplicaciones.
  • Sigue un modelo de pago por uso (pay-as-you-go), es decir, solo se cobra en función de los recursos consumidos.
  • Ofrece un escalado automático, rápido e ilimitado de los recursos hacia arriba y hacia abajo con el fin de ajustarse a la demanda, de cero a prácticamente el infinito.
Serverless computing
Imagen de Brand Factory

Green computing o computación verde

Dentro de los beneficios de la integración de este tipo de arquitectura destaca la computación verde. Un nuevo paradigma que surge para ejecutar una mayor optimización de los recursos informáticos en las empresas, pero con el menor impacto posible en el medio ambiente.

Hacer frente al cambio climático disminuyendo el consumo de energía, la huella de carbono, etc., se ha situado como una de las principales preocupaciones de la sociedad. Microsoft, por ejemplo, ha tomado cartas en el asunto con el lanzamiento de un data center, donde la mayor parte de la energía proviene de fuente renovables.

La seguridad en el modelo serverless

Bajo este aspecto sostenible que ofrece el modelo serverless, hay que ahondar en una de las preguntas que se desarrollan en torno a esta tecnología: ¿es la computación sin servidor segura? Bien, lo primero que hay que tener claro es los ecosistemas en torno a los que se desarrolla esta arquitectura son complejos, dinámicos y están compuestos por muchos componentes diferentes. Para que un ecosistema de este tipo sea seguro, hay que cerciorarse de que los componentes y la interacción entre ellos lo son.

Este ámbito de la seguridad ha sido investigado por el equipo de Research de Telefónica. Dentro del artículo Serverless computing: a security perspective, desarrollado por Eduard Marin, Diego Perino y Roberto Di Pietro, abordan la situación actual de la computación sin servidor en materia de seguridad. Manifestando a lo largo de todo el texto el tipo de amenazas actuales a las que se expone este tipo de arquitectura, así como aquellas características de seguridad adicionales que ofrece el modelo serverless.

La primera distinción que hay que hacer es la diferenciación entre adversarios externos e internos. Los externos, como bien dice la palabra, llevan a cabo los ataques desde fuera de la nube. Estos pueden permitir a los contrarios ejecutar comandos arbitrarios con el objetivo de obtener datos sensibles o manipular la ejecución de cualquier función. Mientras que, los adversarios internos son aquellos que se ejecutan desde dentro de la nube. Por ejemplo, en el caso de una nube pública es significativamente más sencillo ejecutar funciones maliciosas.

Serverless computing
Imagen de Brand Factory

Características de la computación sin servidor

Uno de los hándicaps del modelo serverless es que sus funciones pueden activarse desde diversas fuentes, ampliando la superficie de ataque. Cada una de las funciones que se ejecutan dentro de esta arquitectura realizan una única tarea y, por ende, se encuentra obligada a interactuar con otros servicios de la nube compartidos y, a pesar de que hay políticas de seguridad qué especifican a qué funciones y servicios en la nube puede acceder cada función, al ser un entorno tan complejo las políticas de seguridad son propensas a errores de configuración que abren la puerta a ataques de seguridad.

La mayor parte de las responsabilidades de seguridad del serverless computing recaen en los proveedores del cloud. Mientras que, los desarrolladores de software son los responsables de mantener la seguridad a nivel de aplicación. Por lo que, para ellos, es de vital importancia seguir las mejores prácticas de seguridad a la hora de escribir funciones serverless para conseguir disminuir las posibilidades de bugs -defecto en el software– en estas, que puedan dar lugar a que los adversarios lancen ataques.

Sin embargo, esta arquitectura ofrece una mayor resistencia contra diversos tipos de ataques de denegación de servicios o Denial of Service (DoS) que pretenden saturar el ancho de banda de la red, desencadenar muchas acciones informáticas pesadas en paralelo, o explotar fallos en la aplicación, por ejemplo, para provocar bucles infinitos. Es decir, un fallo que consiste en llevar a cabo un ciclo que se repite de forma infinita, debido a que su condición para finalizar nunca se cumple.

Pese a que esta tecnología vio la luz en el evento de Amazon Web Services en 2014 y han sido diversos los proveedores de la nube que se han introducido en el mundo de las plataformas sin servidor, aún queda mucho trabajo por delante. Siendo uno de los principales desafíos la seguridad de este modelo. «Con el aumento del volumen y la diversidad de los ataques contra la nube, creemos que la seguridad y la privacidad serán un factor clave que, si no se aborda, podrían obstaculizar la adopción generalizada de la computación sin servidor», explica el equipo de Research.

Hacia una nube sin servidores

Por el momento, podemos decir que estamos ante una evolución en el desarrollo de aplicaciones en la nube sin servidor. Donde aún queda mucho por investigar, aprender y aplicar. El serverless computing es un reto en sí mismo que requiere ceder al proveedor de la nube las decisiones de diseño que tienen que ver con la supervisión del servicio (QoS), el escalado y la propiedad de tolerancia de fallos.

Serverless computing
Imagen de Brand Factory

La computación sin servidor ha sido creada, sobre todo, para el intercambio rápido de datos de aplicaciones webs y negocios en la nube. Por lo que, en un inicio, no consiste en procesar aplicaciones enteras, sino funciones por separado. Algunos de los escenarios donde podría introducirse por sus características, son:

  • Backend as a Service (BaaS) para construir y soportar el back-end de una función en la nube.
  • Realización de tareas tras la detección de un evento, como la creación de copias de seguridad o la reorganización de bases de datos.
  • Integración de chatbots y asistentes de conversación.
  • En el ámbito del big data, donde el modelo serverless se sitúa como un aliado para combinar, desplazar, manipular, etc., datos no estructurados (audio, imágenes, etc.) y datos estructurados (XML, JSON, etc.).

De acuerdo a una encuesta de O’Reilly, el 40% de los encuestados trabajan en empresas que han adoptado el modelo serverless. A medida que más organizaciones adopten esta arquitectura, probablemente, con mayor apremio se abordarán los desafíos de seguridad de la computación sin servidor.

Imagen de cabecera de Brand Factory.

RELACIONADOS