Un informe reciente publicado por Datadog, un proveedor de servicios de observabilidad y monitoreo de la nube, describe la computación sin servidor como más popular que nunca. Un análisis del uso de serverless entre los usuarios de Datadog establece que más del 70% de los clientes de AWS, el 60% de los clientes de Google Cloud y el 49% de los clientes de Microsoft Azure utilizan una o más soluciones de este tipo.
Nada nuevo aquí: el serverless es una tendencia consolidada y forma parte del desarrollo de la nube a la hora de elegir la mejor plataforma para aplicaciones nativas en la nube o migrar a estos entornos. Es rápido, no requiere una gran planificación en términos de infraestructura (casi ninguna en realidad) y las aplicaciones parecen funcionar bien. ¿No hay problema entonces? No tan rápido.
La promesa de la tecnología sin servidor es reducir las tareas de gestión de la infraestructura y mejorar la productividad de los desarrolladores. Pero, como toda tecnología, tiene desventajas que no conviene pasar por alto. Pero es posible que la mayoría de las personas que eligen la tecnología sin servidor no vean el panorama completo. Este puede ser tu caso.
Latencia de arranque en frío
Una de las mayores preocupaciones de la informática sin servidor es la latencia del arranque en frío. A diferencia de los modelos tradicionales de computación en la nube, donde las máquinas virtuales o los contenedores se aprovisionan previamente, las funciones sin servidor se deben crear instancias bajo demanda. Si bien esto permite un escalado dinámico, introduce un retraso conocido como arranque en frío. Este factor negativo puede afectar el tiempo de respuesta de la aplicación.
Aunque los proveedores han trabajado en este problema, puede seguir siendo una preocupación para aplicaciones con estrictos requisitos de rendimiento en tiempo real. Algunas personas me han dicho que tienen que abandonar la tecnología sin servidor debido a este factor, que inevitablemente afectará el tiempo de desarrollo mientras la empresa lucha por encontrar otra plataforma.
¿Podría pensar que este problema sólo afecta a las pocas aplicaciones que exigen rendimiento en tiempo real? Pero hay más aplicaciones de este tipo de las que crees. Quizás este sea un requisito de la aplicación que está a punto de trasladar a una plataforma sin servidor.
Bloqueo a un proveedor
Por sorprendente que parezca, todavía me encuentro con desarrolladores y arquitectos que creen que las aplicaciones sin servidor son fácilmente transportables entre proveedores de nube. No, los contenedores son portátiles, pero la informática sin servidor es diferente. He visto 'Evitar la dependencia de proveedores' en más de una presentación sobre informática sin servidor, lo cual es un poco impactante.
Cada proveedor de nube tiene su propia implementación sin servidor, lo que dificulta cambiar de proveedor sin cambios significativos en el código y la infraestructura. Esto puede limitar la flexibilidad de una organización y obstaculizar su capacidad para adaptarse a las necesidades cambiantes o aprovechar las ofertas de la competencia. Hoy en día, con el avance hacia implementaciones multinube, esta es una limitación grave que debe abordarse.
Depuración y seguimiento
Es posible que no se pueda acceder a las técnicas de depuración tradicionales, como conectarse a un servidor e inspeccionar el código, en un entorno sin servidor. Además, monitorear el rendimiento y el estado de funciones sin servidor individuales puede ser complejo, especialmente cuando se monitorean muchas funciones sin servidor distribuidas en diferentes servicios.
Las organizaciones deben invertir en herramientas y técnicas especializadas para depurar y monitorear de manera efectiva sus aplicaciones sin servidor. Lo cual normalmente acaban comprendiendo mejor cuando realmente surge la necesidad, pero en ese momento puede provocar retrasos y sobrecostos en los proyectos.
Gestión de costes
Pero el principal problema de la tecnología sin servidor radica en la gestión de los costes de los sistemas implementados. Ciertamente, esta elección de arquitectura puede ahorrar dinero al eliminar la necesidad de administrar y aprovisionar la infraestructura (una ventaja que muchos desarrolladores y arquitectos arruinan al aprovisionar excesivamente los recursos). Sin embargo, es esencial monitorear y controlar los costos de manera efectiva y, debido a que los sistemas sin servidor asignan recursos dinámicamente en segundo plano, administrar directamente los costos de estos recursos en la nube es muy difícil. Además, a medida que las aplicaciones se vuelven más complejas, la cantidad de procesos y recursos asociados puede aumentar, lo que genera sobrecostos inesperados en el presupuesto.
Las organizaciones deberían monitorear de cerca el uso de recursos e implementar estrategias de gestión de costos para evitar sorpresas, pero la mayoría no lo hace, lo que hace que la tecnología sin servidor sea menos rentable. Muchas organizaciones pueden operar aplicaciones de manera más rentable si adoptan un enfoque diferente sin servidor para ciertas aplicaciones.
Serverless ayuda a aumentar la productividad de los desarrolladores y reducir los costos de administración de infraestructura. Es un atajo útil para implementar aplicaciones. Sin embargo, es crucial considerar sus posibles inconvenientes y tomar decisiones arquitectónicas informadas. Una planificación cuidadosa, un diseño arquitectónico apropiado y un monitoreo efectivo pueden ayudar a las organizaciones a enfrentar estos desafíos y aprovechar todos los beneficios de la tecnología sin servidor, o decidir que no es adecuada para algunas de sus necesidades de aplicaciones.
Otras noticias que te pueden interesar