Ventajas y desventajas de servicios y framework serverless

Clase 4 de 25Curso de Serverless Framework en AWS

Contenido del curso

Desarrollando con Serverless Framework

Resumen

Comprender las ventajas y desventajas de trabajar con servicios serverless es fundamental antes de construir aplicaciones en la nube. De igual forma, conocer los puntos fuertes y débiles de Serverless Framework como herramienta de desarrollo permite tomar decisiones informadas. A continuación se desglosan los aspectos más relevantes que se abordan en la clase, diferenciando claramente entre el paradigma serverless y el framework que lo potencia.

¿Qué ventajas ofrece serverless en AWS?

Al no aprovisionar servidores ni sistemas operativos, las aplicaciones serverless escalan de forma extremadamente rápida [01:00]. Esto significa que los recursos se crean automáticamente según la demanda o el tráfico en cualquier momento del día. Esa capacidad de escalado automático genera una excelente relación costo-beneficio: a mayor cantidad de usuarios, el negocio crece para suplir ese tráfico y la facturación de AWS refleja únicamente el consumo real [01:26].

Otro punto destacable es la sencillez para desplegar y operar. Con funciones Lambda, por ejemplo, es posible editarlas y desplegarlas directamente desde la consola de AWS, además de configurar variables de entorno o secretos mediante servicios como Parameter Store [01:52].

¿Cómo mejora serverless el proceso de desarrollo?

Trabajar dentro del ecosistema serverless impulsa la adopción de buenas prácticas ampliamente usadas en la industria [02:14]. Además, la integración con otros servicios de AWS resulta natural. Herramientas como API Gateway, SQS y DynamoDB se conectan de manera fluida con las funciones Lambda, lo que amplía las posibilidades de arquitectura sin complejidad adicional [02:30].

Un dato importante: todas estas ventajas se pueden mapear directamente con los seis pilares del AWS Well-Architected Framework [02:49], un marco de referencia que guía el diseño de aplicaciones seguras, eficientes y resilientes en la nube.

¿Cuáles son las desventajas de serverless?

El primer punto a considerar es el cold start o arranque en frío [03:10]. Cuando un servicio serverless se invoca por primera vez, existe un tiempo de aprovisionamiento que el usuario puede percibir como latencia. Sin embargo, a partir de esa primera ejecución, los recursos posteriores no requieren este arranque. Existen técnicas para mitigar su impacto y reducir la percepción de lentitud.

¿Todos los proveedores ofrecen ecosistema serverless?

No todos los cloud providers cuentan con un ecosistema serverless completo [03:50]. AWS, GCP y Azure son los tres principales y ofrecen un gran conjunto de herramientas. Otros proveedores pueden tener opciones limitadas o inexistentes, lo que representa un riesgo de dependencia del proveedor.

También hay que considerar que no todo el mundo está preparado para trabajar con serverless [04:15]. Requiere un cambio de mentalidad y conocimientos específicos. Finalmente, existen restricciones técnicas a nivel de sistema operativo, memoria RAM y timeouts que limitan la ejecución del código en la nube [04:42].

¿Qué ventajas y desventajas tiene Serverless Framework?

Serverless Framework es una herramienta de código libre con una gran comunidad detrás [05:08]. Esto significa acceso a foros, blogs y documentación actualizada constantemente. Su archivo de configuración, el serverless.yml, utiliza sintaxis YAML que resulta fácil de leer y cercana al desarrollador [05:24].

  • La cantidad de conocimiento necesario para desarrollar aplicaciones es mínima.
  • Permite integraciones con herramientas de continuous integration y continuous delivery.
  • Es agnóstico de la nube: funciona con AWS, GCP y Azure [05:56].

¿Cuáles son sus limitaciones como herramienta?

Al depender de contribuciones de la comunidad, parte del código disponible en internet puede contener bugs o estar desactualizado [06:26]. Además, aunque el serverless.yml es práctico, no permite extender la lógica de infraestructura con la misma profundidad que herramientas como Terraform, Pulumi o el CDK de AWS [06:50].

Otras consideraciones relevantes:

  • Se requieren conocimientos previos de cloud y serverless para aprovechar la herramienta [07:04].
  • Depende directamente de CloudFormation para definir recursos e infraestructura como código [07:22].
  • La gran cantidad de plugins disponibles puede generar confusión al no tener un camino único de implementación [07:40].

Ahora que conoces los pros y contras tanto del paradigma serverless como de Serverless Framework, comparte en los comentarios qué otros cloud providers conoces y si cuentan con ecosistema serverless.