Una de las tendencias que veremos en el desarrollo back-end es el Serverless Computing (Computación sin servidor), un modelo de ejecución en la nube que permite una forma más sencilla y rentable de crear y operar aplicaciones nativas de la nube.
Serverless es un modelo de ejecución de computación en la nube que aprovisiona recursos informáticos a pedido y descarga toda la responsabilidad de las tareas comunes de administración de la infraestructura (por ejemplo, escalado, programación, parcheo, aprovisionamiento, etc.) a los proveedores y herramientas de la nube, lo que permite a los ingenieros enfocar su tiempo y esfuerzo en la lógica empresarial específica de sus aplicaciones o procesos.
La forma más útil de definir y comprender la tecnología sin servidor es centrarse en los pocos atributos centrales que distinguen la computación sin servidor de otros modelos de computación:
- El modelo sin servidor no requiere administración ni operación de infraestructura, lo que brinda a los desarrolladores más tiempo para optimizar el código y desarrollar nuevas características y funcionalidades innovadoras.
- Ejecuta código solo a pedido, generalmente en un contenedor sin estado, por solicitud, y se escala de forma transparente con la cantidad de solicitudes que se atienden.
- Permite a los usuarios finales pagar solo por los recursos que se utilizan, sin pagar nunca por la capacidad inactiva.
Amazon Web Services introdujo la tecnología sin servidor en 2014 con AWS Lambda. Hoy en día, todos los proveedores líderes de servicios en la nube ofrecen una plataforma sin servidor que incluye Azure (Azure Functions), Google Cloud (Google Cloud Functions) e IBM Cloud (IBM Cloud Code Engine). Junto con los microservicios y los contenedores, la tecnología sin servidor forma un triunvirato de tecnologías que normalmente se consideran el núcleo del desarrollo de aplicaciones nativas de la nube.
Si bien existen muchos beneficios técnicos y comerciales individuales de la informática sin servidor, existen cuatro ventajas principales:
- Permite a los desarrolladores centrarse en el código, no en la infraestructura. (También es un entorno políglota, que permite a los desarrolladores codificar en cualquier lenguaje o marco (Java, Python, node.js) con el que se sientan cómodos).
- Los clientes pagan solo por la ejecución. El precio se realiza por solicitud, lo que significa que el cliente paga solo por los recursos que usa durante la ejecución.
- Para determinadas cargas de trabajo, como las que requieren procesamiento paralelo, la tecnología sin servidor puede ser más rápida y rentable que otras formas de computación.
- Las plataformas de desarrollo de aplicaciones sin servidor brindan una visibilidad casi total del sistema y los tiempos de los usuarios y pueden agregar esa información de manera sistemática
Quizás la mayor controversia asociada con la computación sin servidor no está en torno a su valor, casos de uso o qué marcos de trabajo sin servidor del proveedor son los más adecuados para aplicaciones específicas sin servidor, sino más bien al nombre en sí.
Definitivamente hay servidores en la informática sin servidor. El término «sin servidor» persiste porque describe la experiencia del cliente con los servidores: son esencialmente invisibles, porque el cliente no los ve, no los administra ni interactúa con ellos de ninguna manera.
imagen: @natanaelginting