Las infraestructuras basadas en la nube son un factor clave en la transformación digital, y cada vez son más las empresas y organizaciones que optan por este modelo de negocio para optimizar sus procesos, aumentar su productividad y obtener ventajas competitivas. Una de las tecnologías más destacables en este ámbito es el serverless computing.
La computación sin servidor es un modelo de desarrollo y ejecución de aplicaciones y procesos directamente en la nube, autogestionado y sin contacto directo con el servidor subyacente por parte del usuario: es el proveedor de servicios en la nube quien se encarga de la ejecución y administración de los servidores. Se trata de un tipo de computación bajo demanda, ya que el proveedor gestiona de forma dinámica la asignación y distribución de los recursos necesarios para cada tarea. Así, el usuario solo carga su código de programa con las funciones correspondientes en una plataforma en la nube, y este se ejecutará en múltiples servidores con diferentes ubicaciones, sin necesidad de mantener una infraestructura compleja.
El modelo de ejecución más habitual es FaaS (Function as a Service), que permite al usuario desplegar sus propias funciones en el cloud: puede escribir piezas modulares de código que se implementarán en contenedores sin estado, temporales y gestionados por el proveedor, y las funciones se ejecutarán en respuesta a determinados eventos. A diferencia del modelo PaaS (platform as a service), en FaaS no se ofrece un entorno de trabajo constante, sino que se aportan puntualmente y en tiempo real los recursos necesarios durante la ejecución de una única llamada de función.
La importancia del serverless computing y la extensión de su implementación se deben a las ventajas que ofrece:
1. Modelo pay-per-use
Al contrario que en otros modelos, en los que se factura una asignación fija por la capacidad asignada independientemente de su utilización, en serverless computing solo se paga por aquellos recursos que realmente se consuman en el tiempo de ejecución.
2. Externalización de la infraestructura
El usuario no necesita instalar ni mantener sistemas operativos ni servidores, ya que es el proveedor quien se encarga de su mantenimiento, monitorización, parcheado y actualización. Esto simplifica su implementación, elimina los costes operativos y libera tiempo para que el desarrollador se centre en sus tareas específicas, aumentando así su productividad.
3. Disponibilidad y escalabilidad
La alta disponibilidad es inherente al serverless. Los recursos se suministran de forma ágil en tiempo real, incluso en el caso de picos de carga imprevisibles o desproporcionados. Asimismo, ofrece un escalado automático, instantáneo e ilimitado de la capacidad de rendimiento y memoria, que se ajusta completamente a la demanda.
4. Fiabilidad
La flexibilidad de la infraestructura de hardware de los centros de cálculo del proveedor aporta una gran tolerancia a errores. Asimismo, los proveedores serverless incorporan estrategias de recuperación ante desastres (DR) de forma predeterminada, lo que garantiza un alto nivel de seguridad anticaída. Además, la temporalidad de las funciones reduce el impacto de los ataques de denegación de servicios (DDoS).
5. Eficiencia
Es un modelo realmente eficiente respecto al uso de recursos, ya que, al asignarlos solo en función de la demanda, no existe una capacidad latente que se pueda desperdiciar, con lo que también resulta muy rentable.
6. Flexibilidad
La arquitectura serveless es compatible con los principales lenguajes y entornos de programación, como Java, Python o Node.js, y se puede aprovechar en diferentes escenarios, desde el desarrollo de aplicaciones web y el procesamiento de archivos multimedia hasta la gestión de bases de datos o la programación de tareas simultáneas.
En definitiva, apostar por la tecnología serverless computing supone disponer de equipos de desarrollo más ágiles y simplificar los procesos de trabajo para aumentar la competitividad y las oportunidades de negocio.