Experiencias y desafíos en el desarrollo con Serverless en AWS
Clase 22 de 24 • Curso Avanzado de Serverless Framework en AWS
Resumen
¿Cuál ha sido un gran desafío al trabajar con serverless en AWS?
Cuando hablamos de serverless en AWS, inicialmente parece una solución perfecta por su capacidad de escalar. Sin embargo, uno de los mayores dolores de cabeza es la gestión de direcciones IP. En una experiencia particular, se requirió alojar una aplicación dentro de una red con un rango muy limitado de IPs. La naturaleza serverless de AWS Lambda, que permite escalar casi infinitamente, resultó en un colapso de la red por falta de IPs disponibles. Este tipo de problema subraya la importancia de comprender los límites de la infraestructura cloud y asegurarse de planificar adecuadamente la escalabilidad.
¿Cuándo no deberías usar serverless para una aplicación?
Aunque serverless ofrece ventajas significativas, no siempre es la mejor opción. En aplicaciones que requieren procesamiento constante de grandes volúmenes de datos, como tareas de ETL, puede que serverless no sea eficiente por la forma en que se factura según el uso. Estos procesos pueden demandar más recursos si se realizan con Lambdas, lo cual no es rentable comparado con instancias dedicadas de S2 que podrían ejecutar dichas tareas más rápido. Por tanto, en aplicaciones de procesamiento intensivo y continuo, la inversión en instancias dedicadas podría ser una decisión más económica y eficiente.
¿Dónde buscar información fiable sobre serverless?
Curar una lista de fuentes confiables para mantenerse al día sobre serverless es esencial para un desarrollador. Algunos recursos recomendados incluyen:
- Serverless First y Serverless Land: Sitios web enfocados en tecnologías serverless.
- Medium: Plataforma repleta de artículos sobre tecnología que a menudo alberga discusiones actuales y experiencias en primera persona.
- Twitter: Seguir a expertos de la industria que frecuentemente comparten noticias y actualizaciones.
- Platzi: Cursos y foros que ofrecen información actualizada y foros de discusión sobre mejores prácticas y desarrollos en serverless.
Estas fuentes proporcionan no solo teorías, sino también aplicaciones prácticas y casos de uso que enriquecen el conocimiento técnico.
¿Cómo manejar una aplicación serverless en producción?
Para que una aplicación serverless funcione óptimamente en producción, es crucial integrar múltiples herramientas y procesos:
- GitHub Actions: Permiten gestionar despliegues hacia diferentes entornos (Dev, QA, UAT, Prod).
- Monitoring y Observability: Herramientas para analizar el rendimiento.
- CICD (Integración y entrega continua): Proveer flujos automáticos de entrega y actualizaciones sin interrupciones visibles para el usuario.
- Buenas prácticas de infraestructura: Estas son clave tanto en paradigmas tradicionales como modernos y deben ser personalizadas para serverless.
Además, es fundamental evaluar las soluciones serverless específicas para asegurar compatibilidad con prácticas generales de la industria.
¿Existen otras herramientas que complementen el ecosistema serverless?
Serverless no reemplaza a tecnologías existentes como Kubernetes, pero puede coexistir con ellas para lograr un ecosistema robusto. Por ejemplo, Kubernetes maneja contenedores que podrían ser ideales para microservicios que requieren una escala constante, mientras que serverless puede encargarse de servicios que reaccionan a eventos esporádicos. Esta convivencia entre herramientas representa un avance evolutivo, más que un reemplazo, destacando la importancia de elegir lo mejor de ambas tecnologías según el caso de uso particular.
¿Cómo comparar serverless framework con Terraform o CloudFormation?
Cada herramienta en el ecosistema de la nube tiene sus fortalezas y ideales aplicaciones. Serverless framework permite integrar el desarrollo de código con la infraestructura directamente, disminuyendo la distancia entre dev y ops. Sin embargo, Terraform es otra opción sólida para aprovisionar y gestionar infraestructura más tradicional en la nube, aunque no es ideal para gestionar código serverless directamente. En un ambiente mixto, puede ser útil combinar serverless framework para manejar funciones Lambda y Terraform para arquitecturas de infraestructura más amplia, como clústeres de Kubernetes. Esta sinergia permite aprovechar las fortalezas de cada herramienta.
William, Invitamos a los desarrolladores a experimentar con diversas herramientas sin encasillarse, eligiendo aquellas que mejor se adapten a sus necesidades aunque serverless sea tentador. ¡Exploren, prueben y sigan aprendiendo!