DEV Community

Cover image for Boletín AWS Open Source, November Edition
Guillermo Ruiz for AWS Español

Posted on • Edited on

Boletín AWS Open Source, November Edition

¡Bienvenidos a la edición de noviembre del boletín de Open Source! Esta semana arranca re:Invent 2024 en Las Vegas, el evento más esperado del año para los fans de AWS. Si estás interesado en sesiones dedicadas a Open Source, no olvides explorar el catálogo completo en este enlace oficial. Encontrarás charlas, talleres y demostraciones diseñadas para potenciar tus proyectos.

En esta edición, además de destacar las novedades previas a re:Invent, aprenderemos cómo integrar IA generativa con Amazon Bedrock, exploraremos innovaciones en Kubernetes con kro y fmbench-orchestrator, y descubriremos herramientas prácticas como ziya. Además, te acercamos recursos prácticos, desde la monitorización de sistemas hasta la construcción de APIs REST con frameworks modernos.

Novedades re:Invent

Nuestro Sr. Developer Advocate, Guillermo Ruiz, ha recopilado alguna de las novedades pre-reInvent que la compañía ha anunciado en los últimos días. Podéis encontrar más info en el siguiente Link.

noticias pre-reinvent

Si quieres poner a prueba tu conocimiento sobre el mayor evento de AWS, aquí tienes el trivial de IOD.

Trivial reinvent

Tools

ha-aws-cost

ha-aws-cost, creado por Diego Marques, es un componente personalizado para Home Assistant, la popular plataforma de automatización del hogar. Este proyecto permite consultar y visualizar los costes acumulados del mes y las proyecciones de gasto de tu cuenta AWS directamente en Home Assistant.

Incluye dos nuevas entidades:

  1. Coste acumulado del mes: muestra el gasto actual.
  2. Coste proyectado: predice el coste del mes basado en el consumo actual.

Más información en el post original de Diego Marques en LinkedIn.

ziya

Ziya es una herramienta de asistencia de código que interactúa con modelos de Amazon Bedrock. Actualmente funciona en modo de solo lectura y puede explorar toda la base de código para responder preguntas. Entre sus planes futuros se encuentra agregar funcionalidades más avanzadas. Una herramienta clave para desarrolladores que buscan integrar inteligencia artificial en su flujo de trabajo.

kro

Kro (Kube Resource Orchestrator) es una herramienta diseñada para facilitar la creación y gestión de custom resources en Kubernetes. Proporciona una capa de abstracción poderosa que permite definir recursos como componentes reutilizables dentro de tus aplicaciones y sistemas. A través de la definición del recurso fundamental ResourceGroup, kro actúa como un plano que gestiona colecciones de recursos subyacentes.

Con kro, puedes:

  • Definir dependencias entre recursos nativos o personalizados.
  • Configurar valores predeterminados para simplificar implementaciones complejas.
  • Gestionar de manera dinámica todos los recursos subyacentes, asegurando el orden correcto de operaciones.

Es completamente nativo de Kubernetes e integra herramientas existentes, manteniendo procesos e interfaces familiares para los desarrolladores.

analytics-accelerator-s3

Analytics Accelerator Library for Amazon S3 acelera el acceso a datos desde aplicaciones cliente hacia Amazon S3. Algunas de sus principales ventajas incluyen:

  • Reducción de tiempos de procesamiento y costos de computación para cargas de trabajo de análisis de datos.
  • Implementación de mejores prácticas de S3 para maximizar el rendimiento.
  • Optimización específica para archivos Parquet, como prelectura de metadatos y predicción de columnas necesarias.
  • Mejora de la relación precio-rendimiento en aplicaciones analíticas como Apache Spark.

Actualmente, el proyecto está en etapa Alpha. Más detalles y ejemplos en el archivo README del repositorio.

graphrag-toolkit

GraphRAG Toolkit es una herramienta de Python para crear aplicaciones basadas en GraphRAG. Su funcionalidad principal incluye:

  • Construcción automatizada de gráficos a partir de datos no estructurados.
  • Estrategias de respuesta a preguntas utilizando los gráficos generados.
  • Uso de componentes de bajo nivel de LlamaIndex, como conectores de datos y extractores de metadatos.

Por defecto, emplea Amazon Neptune Analytics o Amazon OpenSearch Serverless como base de datos gráfica y vectorial, pero es extensible para otros backends. Para modelos LLM y embeddings, se integra con Amazon Bedrock, aunque puede configurarse con alternativas gracias a las abstracciones de LlamaIndex.

Demos, Samples, Solutions and Workshops

fmbench-orchestrator

fmbench-orchestrator automatiza la implementación y gestión de FMBench para pruebas de rendimiento en Amazon EC2, SageMaker y Bedrock. Permite:

  • Probar simultáneamente múltiples instancias de tipos variados en diferentes regiones.
  • Ejecutar configuraciones diversas en un flujo automatizado que incluye creación de instancias, ejecución de pruebas, recolección de resultados, y limpieza final.

El proceso es ahora más eficiente y escalable gracias a esta herramienta. Detalles completos disponibles en el README del proyecto.

terraform-f1-telemetry-infra

terraform-f1-telemetry-infra crea un receptor UDP para capturar, analizar y visualizar datos de telemetría en tiempo real. Utiliza servicios como Amazon ECS, Elastic Load Balancing y Route 53. Diseñado para juegos de carreras en videoconsolas que envían datos de telemetría a una IP específica, este proyecto es ideal para quienes buscan explorar datos en vivo de manera práctica y visual.

news-clustering-and-summarization

news-clustering-and-summarization es un repositorio que ofrece una solución para organizar y resumir noticias casi en tiempo real, utilizando servicios de AWS como Lambda, Step Functions, Kinesis y Bedrock. Este proyecto procesa grandes volúmenes de noticias, las agrupa en temas relacionados y genera resúmenes para proporcionar actualizaciones relevantes y rápidas.

Su capacidad para agrupar eventos y personalizar las preferencias del usuario ofrece una experiencia única. La documentación facilita la configuración rápida de esta solución.

news-clustering-and-summarization

twinmaker-dynamicscenes-crossdock-demo

twinmaker-dynamicscenes-crossdock-demo presenta una demostración del uso de entornos dinámicos en AWS IoT TwinMaker. Este ejemplo simula un almacén "cross-dock", donde los pallets pasan de la entrada al muelle de clasificación y luego al muelle de salida.

La interfaz web visualiza el gemelo digital del almacén, mostrando en tiempo real las operaciones internas. Este proyecto ilustra el potencial de los gemelos digitales para optimizar procesos logísticos y mejorar la gestión operativa.

twinmaker-dynamicscenes-crossdock-demo

Comunidad

Aurora Limitless

Anunciado el año pasado en re:Invent 2023, Aurora Limitless (compatible con PostgreSQL) ya está disponible en versión preliminar. Si aún no has explorado esta opción, Franck Pachot, AWS Hero, ha iniciado una serie de blogs para ofrecerte información general antes de que profundices más en las sesiones de re:Invent 2024. Aquí tienes la primera entrada de la serie.Aurora Limitless.

Invocaciones Asíncronas en AWS Lambda

Yan Cui analiza cómo funciona la limitación (throttling) en invocaciones asíncronas de AWS Lambda, desmintiendo conceptos erróneos sobre su funcionamiento.

Las invocaciones asíncronas en AWS Lambda no se ven afectadas por throttling en el momento de la solicitud, ya que las peticiones se colocan en una cola interna gestionada por Event Invoke Frontend. Si no hay capacidad de ejecución, se reintentan hasta por 6 horas. Este modelo elimina la necesidad de usar SNS para manejar errores de concurrencia, simplificando arquitecturas y reduciendo costes. Además, es útil para delegar tareas secundarias, mejorando la experiencia del usuario y beneficiándose de reintentos y destinos de error automatizados.

Si queréis ver más detalles, os recomendamos que echéis un vistazo a su blog: The Burning Monk.

Stateful Workload Operator en Kubernetes

Michael Youssef, nos describe cómo LinkedIn ha desarrollado el Stateful Workload Operator para gestionar stateful applications en Kubernetes. Este operador, diseñado para superar las limitaciones de StatefulSets, introduce un modelo centralizado que simplifica el mantenimiento, despliegue y escalado, gracias a herramientas como el Application Cluster Manager (ACM). Además, expone aprendizajes clave, como la reducción de tareas repetitivas, el diseño modular de sus APIs y las prácticas de desarrollo escalables que han permitido a LinkedIn migrar sus sistemas con éxito a Kubernetes.

Enlace al blog.

Cómo Monitorizar tus Sistemas

Jim Brikman, autor de Terraform Up and Running, nos trae una serie de blogs sobre monitorización. Podréis encontrar que la monitorización eficaz de sistemas implica incorporar registros y métricas para identificar problemas y analizar el rendimiento. Herramientas como trazas distribuidas y eventos estructurados proporcionan una visión más profunda, mientras que las alertas deben ser claras y útiles. Comienza con registros básicos y métricas clave, ampliando gradualmente conforme el sistema crece. Los eventos estructurados y registros detallados suelen ser esenciales para depurar problemas complejos, demostrando su valor cuando surgen incidencias críticas.

Link: https://www.gruntwork.io/books/fundamentals-of-devops/monitor-your-systems-metrics-logs-alerts-observability

Machine Learning y Generative AI

Creación de un agente de cafetería con Amazon Bedrock y Shopify

Un interesante proyecto de Ricardo que guía a los lectores en cómo utilizar Amazon Bedrock de manera eficiente para implementar soluciones prácticas. Aprenderás a consumir la API de Bedrock con Python, tanto para modelos de texto como multimodales, generando nombres, logotipos y menús para una cafetería ficticia. Además, explica cómo crear un agente Bedrock que interactúe con la API de Shopify para gestionar pedidos y cómo desarrollar un frontend en Streamlit, ofreciendo una experiencia completa desde la configuración inicial hasta la implementación final. Ideal para quienes desean explorar IA generativa en proyectos reales. Leer más.

Taxonomía de ataques y mitigaciones para GenAI

El informe de NIST explora ataques adversariales en machine learning y presenta una taxonomía detallada para definir conceptos clave y estrategias de mitigación. Descargar informe.

taxonomy of attacks & mitigations for GenAI

RAG Project
Este repositorio explora el uso de Retrieval-Augmented Generation (RAG), una técnica que combina generación de lenguaje y recuperación de datos para aplicaciones avanzadas. El repositorio incluye notebooks con guías prácticas y detalladas que abarcan desde configuraciones introductorias hasta implementaciones avanzadas, como consultas múltiples y personalización de modelos RAG. Es una excelente referencia para quienes buscan implementar soluciones innovadoras utilizando RAG.

RAG Project

Dynamiq
Dynamiq es un marco integral diseñado para simplificar el desarrollo de aplicaciones impulsadas por IA. Se especializa en la orquestación de agentes de generación aumentada por recuperación (RAG) y modelos de lenguaje grande (LLM), proporcionando una solución todo-en-uno para proyectos de IA generativa.

La Frikada del Mes

GPTARS, el robot de Interestelar
En alguna ocasión me habréis oído decir que me gusta la robótica. Si te apasiona este mundo y eres fan de la película Interestelar, este proyecto te encantará. GPTARS te guía para construir tu propio robot inspirado en la película e integrarlo con Inteligencia Artificial Generativa, combinando tecnología y creatividad.

Vídeos del Mes

Gene Kim, autor de El Proyecto Fénix y El Proyecto Unicornio, compartió una charla del Dr. Erik Meijer (@headinthebox). Reconocido por su trabajo en tecnologías como Visual Basic, C#, LINQ y Hack, el Dr. Meijer aborda cómo los modelos de lenguaje grande (LLMs) han revolucionado su investigación y están transformando la forma en que se escribe código y las tareas de los desarrolladores.

Por otro lado, Joshua Liebow-Feeser, ingeniero de software en Fuchsia Security (Google), presentó en RustConf 2024 una innovadora charla sobre "X-safety" en Rust, destacando cómo esta capacidad permite incorporar propiedades de seguridad arbitrarias al compilador. Su presentación mostró cómo esta técnica protege contra vulnerabilidades en protocolos de red y criptografía, y cómo puede redefinir el desarrollo de software en entornos críticos para la seguridad. Esta charla fue organizada por la Fundación Rust y se celebró en Montreal y en formato online.

El Mundo de Rust

AWS Lambda Sandbox en Rust
El código del AWS Lambda Sandbox ha migrado de Go a Rust, lo que supone importantes mejoras en trazabilidad y rendimiento. Con esta transición, ahora es posible obtener un seguimiento completo de errores con RUST_BACKTRACE=full, lo que facilita el análisis y la depuración en caso de fallos. ¡Un paso adelante para optimizar este servicio crítico!

AWS Lambda Sandbox code is written in Rust

Construcción de APIs REST con Rocket
Darko Mesaros demuestra cómo construir APIs REST rápidas y seguras utilizando el framework Rocket en Rust. En su última demo, optó por desarrollar una API desde cero, destacando la facilidad y elegancia del framework Rocket. Este enfoque no solo refuerza su experiencia con Rust, sino que también ilustra cómo crear soluciones escalables y eficientes.

Link: https://gist.github.com/darko-mesaros/763943252d3623ad9d7f13c1e510a6c1

dummy REST API for a demo

Aplicaciones destacadas de Rust
Darko también presentó Shuk, su utilidad de línea de comandos para compartir archivos, que ya está disponible en su versión 0.4.6. Entre las novedades, destaca la capacidad de firmar archivos ya cargados sin necesidad de volver a subirlos y la inclusión de nuevas opciones de depuración para resolver problemas más fácilmente. ¡Descubre más instalando Shuk con cargo install shuk y explorando su web oficial: shuk.rs!

Curso completo de Rust
¿Aún no te has animado a explorar Rust? Te dejamos un curso completo de tres horas para que comiences a dominar este lenguaje potente y versátil:

Y hasta aquí la edición de este mes. Esperamos que os haya gustado. Y si estáis por re:Invent, pasaros a saludar! estaremos encantados de charlar con vosotros.

Hasta entonces, happy coding!

Top comments (0)