Con la popularización de la computación en la nube, la computación sin servidor se ha convertido gradualmente en una tendencia importante en la industria de TI. Se refiere a un servicio en la nube que no requiere que los usuarios administren recursos de hardware o software. Los usuarios solo necesitan proporcionar el código de la aplicación o los datos para ejecutar el servicio correspondiente. A pesar de la palabra “sin servidor” en el nombre, esta tecnología todavía depende de un servidor para ejecutar el código del desarrollador.
La computación sin servidor se refiere a la abstracción de la computación, lo que permite a los desarrolladores centrarse más en la lógica de la aplicación que en la infraestructura subyacente.
La definición de sin servidor ha evolucionado con el tiempo y tiene diferentes interpretaciones en la industria. Los expertos sugieren cambiar el énfasis de las especificaciones técnicas a una mentalidad que se centre en cómo se puede utilizar la tecnología sin servidor para resolver desafíos comerciales.
Sin embargo, la popularidad de la tecnología sin servidor no significa que todo se haya vuelto sencillo. Su uso ha transferido gradualmente la complejidad que originalmente pertenecía al equipo de operaciones al equipo de desarrollo. Aun así, los equipos de operaciones aún necesitan gestionar cuestiones como autenticación, redes, políticas de seguridad y optimización de costos.
En el mundo de la computación sin servidor, los desarrolladores pueden enfrentar varios desafíos, uno de los cuales es que las aplicaciones son susceptibles a errores en la computación distribuida.
“El control de versiones es fácil, las transacciones compensatorias siempre funcionan y la observabilidad es opcional”. Estos son conceptos erróneos comunes sobre la computación distribuida.
Además, monitorear y depurar aplicaciones sin servidor es un desafío porque su naturaleza distribuida y basada en eventos a menudo hace que sea difícil rastrearlas. Si bien las herramientas de monitoreo tradicionales pueden enfrentar limitaciones, las tecnologías modernas como las herramientas de rastreo distribuido y el registro centralizado pueden mejorar estos problemas de manera efectiva.
Según el informe de OWASP, las aplicaciones sin servidor aún son vulnerables a los ataques tradicionales y a los ataques cibernéticos dirigidos específicamente a las aplicaciones sin servidor (como los ataques de "denegación de servicio de billetera"). Esto obliga a los desarrolladores a cambiar su forma de pensar y prevenir estos riesgos de nuevas maneras.
Si bien la computación sin servidor ofrece flexibilidad y escalabilidad en muchos escenarios, puede no ser tan efectiva como la asignación de recursos específica para ciertas cargas de trabajo de computación de alto rendimiento (HPC). Cuando las cargas de trabajo requieren un uso continuo o predecible de recursos, el aprovisionamiento tradicional de servidores por lotes a veces puede resultar más rentable que un modelo de facturación de pago por uso.
La ventaja del serverless no es solo su amplio alcance, sino también la flexibilidad que aporta y la capacidad de satisfacer diferentes necesidades. Los desarrolladores necesitan encontrar las mejores formas de aplicar estas tecnologías en lugar de seguir ciegamente las tendencias.“Para ciertas cargas de trabajo de HPC, la computación sin servidor parece ser cada vez más adaptable a requisitos cada vez más complejos”.
En las arquitecturas sin servidor, los desarrolladores deben tener cuidado con los antipatrones como el "antipatrón arena", que se refiere a que la funcionalidad del sistema es demasiado granular, lo que genera complejidad en la gestión y reduce la eficiencia del rendimiento. Otro antipatrón, llamado "Lambda Pinball", implica llamadas de funciones excesivas, lo que causa problemas de latencia y observabilidad.
Para resolver estos problemas, las empresas pueden considerar establecer límites de dominio claros para distinguir las interfaces públicas de las publicadas, reduciendo así la complejidad de la dependencia.
“La adopción de tecnología sin servidor debe combinarse con prácticas de seguridad, en particular la aplicación de DevSecOps, que ayuda a mejorar la eficiencia y la seguridad”.
En general, la flexibilidad y escalabilidad que ofrece la computación sin servidor brindan muchas oportunidades comerciales tanto para desarrolladores como para empresas. Sin embargo, en un entorno así también debemos ser conscientes de los desafíos y riesgos potenciales. ¿Se convertirá la computación sin servidor en una opción generalizada en el futuro o sus limitaciones la obligarán a recurrir a otras arquitecturas?