Síguenos:
Cloud
16 de Diciembre de 2016

Serverless, la computación sin servidores: la nueva tendencia cloud

Serverless, la computación sin servidores: la nueva tendencia cloud

Serverless, la computación sin servidores: la nueva tendencia cloud

Escrito por , 16/12/2016

Cloud computing ha supuesto una auténtica revolución en el sector TI y en el modo de trabajar y de pensar de la mayoría de las empresas. Las modalidades IaaS (Infrastructure as a Service), PaaS (Platform as a Service) o SaaS (Software as a Service) proporcionan soluciones flexibles y basadas en el pago por uso de servidores, memoria y almacenamiento. En la frenética carrera por innovar, el modelo Docker, basado en Linux, que automatiza el despliegue de aplicaciones dentro de contenedores de software, parecía ser the next big thing en el avance del modelo cloud.

Pero éste es un mundo que no se detiene. Y, reflexionando con Diego Rodríguez, compañero y colaborador de este blog también, sobre qué es lo siguiente, cuál será el próximo nivel de abstracción, surge este post. Y la novedad es prescindir del servidor físico o virtual, propio o en la nube. Se trata de una tecnología en la que los servidores físicos y virtuales que tradicionalmente se utilizan para ejecutar aplicaciones se vuelven invisibles para los desarrolladores que construyen las aplicaciones. Ésta es la promesa de las tecnologías serverless.

La computación sin servidor (serverless) es una categoría de servicio de computación en la nube que aúna dos de los principales argumentos de venta del modelo as a service: por un lado, ofrece capacidad de computación sin complicaciones (no hay una infraestructura virtual que administrar, el usuario no tiene que pensar si necesita más o menos capacidad, cómo va a hacer el despliegue de máquinas, el escalado o la tolerancia a fallos) y, por otro, pago por uso (no hay máquinas físicas o virtuales ni contenedores en el modelo de programación, y únicamente se factura cuando el desarrollo o aplicación se ejecuta en la nube, no hay pago por inactividad).

Los servicios serverless están diseñados para ejecutar fragmentos de código que llevan a cabo una única tarea de corta duración. Estos pequeños bloques autónomos de código, conocidos como funciones, no dependen de ningún otro código y, así, pueden implementarse y ejecutarse dónde y cuándo se necesite. A diferencia de una aplicación en la nube en la que el código está estructurado de manera más monolítica y puede manejar varias tareas, el código susceptible de ejecutarse en servicios serverless encaja mejor con la filosofía de las arquitecturas de software basadas en microservicios. En este modelo, las aplicaciones están divididas en varias funciones principales, que son desarrolladas para que se ejecuten de forma independiente y se comuniquen a través de API.

Estas pequeñas funciones ejecutadas de forma serverless se activan mediante eventos. Por ejemplo, un evento podría ser cuando un usuario sube un archivo a un servicio de almacenamiento en la nube donde debe ejecutar una acción. La función que haya definido se ejecuta cada vez que se dispara dicho evento. Una vez que la función se ha ejecutado, el servicio en la nube reducirá la infraestructura subyacente y el área TI pagará al proveedor cada vez que se ejecute su código, en lugar de pagar por adelantado por máquinas o servidores virtuales que tal vez no necesite.

Este enfoque permite, por tanto, que al usuario se le facture solo por el tiempo en que se ejecuta el código. En conclusión, los usuarios pueden centrarse en escribir código, sin tener que administrar servidores. El proceso, en esencia, se convierte en “sin servidor” para el cliente. Es la profecía cumplida de Marc Andreessen, “software is eating the world”, y será el triunfo de los desarrolladores frente a los administradores de sistemas.

¿Fantasía? No. La computación serverless ya la está ofreciendo Microsoft (Azure Functions), Google (Google Cloud Functions), Amazon (Amazon Lambda), o IBM (Bluemix OpenWhisk).

Aunque aún está lejos de ser la principal tendencia del sector, esta forma de computación resultará particularmente útil cuando se ejecuten aplicaciones sobre dispositivos conectados a Internet, ya que requerirán cantidades masivas de solicitudes de corta duración. Lo mismo sucederá para la próxima generación de servicios basados en inteligencia artificial y machine learning. Vamos hacia un modelo de “softwarización” (perdón por el palabro) del modo de trabajo” y particularmente del área de sistemas, con tendencias como DevOps o Software Defined Datacenter que terminarán por confluir de la mano de las evoluciones tecnológicas como el mundo serverless o los microservicios.

Telefónica, conocedora y partícipe del interesante momento tecnológico que vivimos en el ámbito de los sistemas, cree firmemente que existen escenarios en los que el proceso evolutivo descrito está teniendo un ritmo vertiginoso. Por ello ha incorporado a su oferta soluciones de dos de los principales actores en el panorama cloud: Amazon Web Services y Azure, y ofrece una solución tecnológica capaz de integrar los distintos contextos existentes en cualquier departamento de sistemas con entornos como VDC y también, por supuesto, los novedosos entornos serverless.

Imagen: Álex

Sobre el autor

Agustina Piedrabuena Moraleda

Agustina Piedrabuena Moraleda

Soy ingeniera de telecomunicaciones. He trabajado para Ericsson, Telefónica Móviles, Altran y el Hospital General Universitario de Ciudad Real. Fundadora y directora de la start-up tecnológica exclamation!, dedicada al impulso de la Sociedad de la Información en Castilla-La Mancha a través del desarrollo de proyectos de Ciudades Digitales en la región. Mujer Empresaria del Año 2008 en Ciudad Real. Ex-Directora General para la Sociedad de la Información y las Telecomunicaciones del Gobierno de Castilla-La Mancha. Ahora en Telefónica, en Ventas y Desarrollo de Negocio TI en Universidades de Castilla-La Mancha, Castilla y León y Madrid.
Ver todos sus artículos »