Boletín AWS Open Source, Christmas Edition
Published: 2023-12-24 19:17:41

**¡Felices fiestas a toda la comunidad de AWS Open Source!** A medida que el 2023 se acerca a su fin, queremos celebrar con vosotros aquellos proyectos open-source que nos han llamado la atención. Esta edición especial navideña está dedicada a destacar aquellos proyectos que puedes probar durante este periodo de vacaciones. 

Comencemos....

**1. Ampliando Horizontes con Kubernetes y Containers:**
Este año, vimos innovaciones increíbles en la integración de Kubernetes en AWS. Herramientas como Finch y el soporte ampliado para Karpenter, que permiten mejorar la gestión y escalabilidad en la nube. Eso sin olvidarnos de [EKS Anywhere](https://aws.amazon.com/es/eks/eks-anywhere/), que facilitan la adopción y gestión de Kubernetes, proporcionando flexibilidad y control en tus despliegues.

**Karpenter**
**[Karpenter](https://karpenter.sh/)** es un escalador automático de clústeres de Kubernetes flexible y de alto rendimiento que mejora la disponibilidad de las aplicaciones y el uso de los recursos. 

Compañías como [Grafana](https://grafana.com/blog/2023/11/09/how-grafana-labs-switched-to-karpenter-to-reduce-costs-and-complexities-in-amazon-eks/) o [AI Anthropic](https://www.thestack.technology/aws-anthropic-cloud-bill-eks-karpenter/) que han reducido sus facturas utilizando Karpenter en sus entornos EKS.

Además, Microsoft anunció recientemente soporte para Karpenter en Azure. 

¿Lo has probado ya?

![Cómo funciona Karpenter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8e7zjfafd148fjsc6bmz.png)

**Finch**
**[Finch 1.0](https://github.com/runfinch/finch)** es una herramienta de línea de comandos para construir, ejecutar y publicar contenedores Linux en macOS. Finch depende de varios proyectos de código abierto, incluyendo Lima (que proporciona la máquina virtual en la que una pequeña imagen de sistema operativo Linux ejecuta los componentes del runtime del contenedor) y nerdctl (un wrapper para containerd que proporciona las capacidades comunes de línea de comandos del ciclo de vida del contenedor). 

Una herramienta útil para aquellos que utilizan dispositivos del ecosistema Apple!

**eksctl-io**
**[eksctl-io](https://eksctl.io/)** es una herramienta CLI para crear y gestionar clústeres en EKS, el servicio gestionado de Kubernetes de Amazon para EC2.

Si vives en el mundo CLI, esta es tu herramienta para los clústers EKS!

**Bottlerocket OS**
[Bottlerocket](https://bottlerocket.dev/) es un sistema operativo basado en Linux (optimizado) para alojar contenedores. Este OS se instala como el sistema operativo base en la máquina o instancia donde se ejecutan tus propios contenedores. Está específicamente diseñado para trabajar con tu orquestador de contenedores (como Kubernetes) y automatizar el ciclo de vida de los contenedores que se ejecutan en tu clúster. Es una solución que funciona tanto en la nube como en tu centro de datos. Muy fan de todas aquellas soluciones que son independientes de la infraestructura sobre la que se ejecutan!

**ECS-Anywhere con ChatGTP**
Durante el 2023 también tuvimos tiempo de jugar con LLMs de terceros, en este caso ChatGPT, para **Simular un despliegue de [ECS-Anywhere]**(https://dev.to/aws-espanol/simulando-ecs-anywhere-con-chatgpt-3mbd). ECS-A es un servicio que permite ejecutar contenedores de Amazon ECS en cualquier infraestructura, ya sea en la nube, on-prem o en el edge. Hubo que ajustar y afinar la configuración para obtener los resultados esperados, pero fue entretenido ver cómo son capaces de replicar despliegues de los servicios de AWS.

![ECS-A](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pt2zkawl3hmnea0rz9vg.png)

Y para cerrar este apartado, comentaros que AWS tine un plan para donar **$3 millones en créditos cloud a la CNCF** para aliviar los costes en el tráfico de salida (egress) que la CNCF incurre cuando los usuarios descargan recursos de Kubernetes desde Google (donde originalmente están alojados). Una clara intención de seguir apostando y apoyando los proyectos open-source.

**2. Machine Learning para Todos:**
El 2023 fue testigo de cómo el machine learning se hizo más accesible. Con proyectos como Amazon Bedrock, CodeWhisperer o Amazon Q, cualquier desarrollador (sin importar su nivel de conocimiento) puede experimentar, construir y desplegar modelos de ML de manera más eficiente. 

**PartyRock**
**[PartyRock](https://partyrock.aws/)** es un nuevo espacio impulsado por Amazon Bedrock que te permite crear tus propias aplicaciones en segundos, compartirlas con otros y aprender sobre la IA generativa mientras te diviertes.

Por ejemplo, puedes construir tu propio **[motor de búsqueda de proyectos AWS de open-source](https://partyrock.aws/u/gruizesteban/JVtdzjxDR/OpenSourceGuide%3A-Your-Companion-for-Building-Maintaining-and-Contributing-to-AWS-Projects)** y recibir consejos y mejores prácticas para contribuir. ⁣

![Motor búsqueda AWS open-source](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1q0r7e67qi1yhfzlbcz2.png)

**ask-bedrock**
**[ask-bedrock](https://aws-oss.beachgeek.co.uk/3bh)** es un nuevo proyecto que proporciona una interfaz de línea de comandos que te permite conversar con tu modelo LLM de Amazon Bedrock. Esta herramienta es un wrapper alrededor de las API de bajo nivel de Amazon Bedrock y Langchain. Su principal valor añadido es que almacena localmente la configuración de la cuenta de AWS y del modelo para permitir una interacción rápida y sencilla.

**awesome-codewhisperer**
El repositorio **[awesome-codewhisperer](https://aws-oss.beachgeek.co.uk/3cw)** de Christian Bonzelet es una gran colección de recursos para aquellos que están experimentando con asistentes de programación basados de Inteligencia Artificial Generativa, como Amazon CodeWhisperer. Este recurso te mantendrá ocupado y te ayudará a dominar Amazon CodeWhisperer en poco tiempo.

**ragna**
[ragna](https://aws-oss.beachgeek.co.uk/3f3), es un repositorio que creó Ricardo Sueiras para mostrarte cómo puedes agregar modelos Amazon Bedrock de Anthropic y Meta dentro de la herramienta Ragna. En su última actualización se ha incluido el modelo Llama2 13B. Para ayudarte, tienes una nueva entrada en el blog, [Adding Amazon Bedrock Llama2 as an assistant in Ragna](https://dev.to/aws/adding-amazon-bedrock-llama2-as-an-assistant-in-ragna-pdl), que te ayudará a ponerlo en marcha. También hay mucha información útil en el README del proyecto.

**3. IoT y Edge Computing:**
AWS IoT Greengrass ha llevado la computación al borde a nuevas alturas este año. Los avances en este espacio no solo han mejorado la velocidad y eficiencia en el procesamiento de datos sino que también han abierto nuevas posibilidades en sectores como la manufactura, la salud y la agricultura.

**FreeRTOS**
[FreeRTOS](https://www.freertos.org/) es un sistema operativo de código abierto en tiempo real para microcontroladores y microprocesadores. Está implementado en más de 40 arquitecturas, lo que brinda a los desarrolladores una amplia gama de hardware, además de un conjunto de bibliotecas de software preempaquetadas.

![FreeRTOS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5j64stfgc5snjjpumvsl.png)

**Diagram Maker**
[Diagram Maker](https://github.com/awslabs/diagram-maker) es una biblioteca agnóstica en cuanto al framework y formatos de datos que es completamente personalizable en términos de apariencia y comportamiento. También expone una interfaz declarativa para reducir el código necesario para integrar la biblioteca en cualquier aplicación y viene con muchas características interactivas incorporadas.

![Diagram Maker](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhv2r6larx2oi55svums.png)

**AWS IoT Application Kit**
[iot-app-kit](https://github.com/awslabs/iot-app-kit) es una biblioteca de desarrollo para construir aplicaciones web basadas en el Internet de las Cosas (IoT) en el ámbito industrial. Con IoT App Kit, puedes construir aplicaciones de front-end y páginas web para utilizar datos de IoT. Por defecto, IoT App Kit ayuda a recuperar datos de [AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) y [AWS IoT TwinMaker](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/what-is-twinmaker.html). También puedes instalar plugins para obtener datos de tus propias fuentes. 

![iot-app-kit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y3e808ltqe8ujwwwyfej.png)

**4. Seguridad y Confiabilidad:**
La seguridad es siempre una prioridad, y en 2023, proyectos como Prowler y OCSF han reforzado la postura de seguridad de innumerables organizaciones, asegurando que sus operaciones en la nube sean tan seguras como innovadoras.

**Prowler**
[Prowler](https://github.com/prowler-cloud/) es una herramienta de software libre que permite analizar el estado de la seguridad de múltiples servicios y recursos desplegados en la nube de forma manual o automática. Contiene controles que cubren CIS, NIST 800, NIST CSF, CISA, RBI, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, el Well-Architected Framework de Seguridad de AWS, la Revisión Técnica Fundacional de AWS (FTR), el Esquema Nacional de Seguridad (ENS) de España y marcos de seguridad personalizados.

![Prowler](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyfeetthlj7tq5iponl3.png)

Te invitamos a seguir este tutorial detallado que te guiará a través de tus primeros pasos.

{% youtube KZbPNbRZFZY %}

**OCSF**
El [Open Cybersecurity Schema Framework (OCSF)](https://github.com/ocsf/ocsf-schema) es un esfuerzo colaborativo y de código abierto liderado por AWS y socios destacados en la industria de la ciberseguridad. Se trata de un framework para crear esquemas.

La forma recomendada de explorar el esquema es a través de [schema.ocsf.io](schema.ocsf.io). 

Cabe destacar que OCSF es agnóstico al formato de almacenamiento, la recolección de datos y los procesos ETL. El esquema central para eventos de ciberseguridad está destinado a ser agnóstico a las implementaciones. Los archivos de definición del marco del esquema y el esquema resultante están escritos en **JSON**.

Podrías desplegar Amazon Security Lake para centralizar automáticamente los datos de seguridad de los AWS entornos y las fuentes de terceros en un data lake de seguridad.

**Suricata**
[Suricata](https://suricata.io/features/open-source/) es un motor de alto rendimiento que está compuesto por un sistema de detección de intrusiones (IDS), un sistema de prevención de intrusiones (IPS) y el monitoreo de seguridad de la red (NSM). Es de código abierto y propiedad de la ONG (gestionada por la comunidad), la Open Information Security Foundation (OISF).

Si eres desarrollador y te gusta el mundo de la seguridad, este puede ser un proyecto interesante en el que contribuir. Disponen de una [guía para desarrolladores](https://docs.suricata.io/en/latest/devguide/index.html) que puedes seguir.  

**5. DevTools**

Llegamos a uno de los apartados que más nos apasionan. Este es el año de **RUST**, y si habéis tenido la oportunidad de ver la keynote de [Werner Vogels en re:Invent 2023](https://www.youtube.com/watch?v=UTRBVPvzt9w) mostró cómo es uno de los [lenguajes de programación más eficientes](https://haslab.github.io/SAFER/scp21.pdf) que existen.

![Ranking lenguages programación más eficientes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9objjfy1myr8qpjzfxp.png)

**aws-sdk-rust**
[AWS SDK para Rust](https://github.com/awslabs/aws-sdk-rust) ya se está disponible de forma general. El SDK proporciona una API idiomática y segura de tipos y admite características modernas del lenguaje Rust, como async/await, E/S sin bloqueo y constructores. Admite el acceso a más de 300 servicios de AWS, cada uno con su respectivo contenedor.

A lo largo del 2024 os iremos mostrando ejemplos de cómo utilizar el SDK en distintos casos de uso, desde la transferencia de datos hasta el despliegue de aplicaciones.

**Kani**
[Kani](https://github.com/model-checking/kani) es una herramienta de razonamiento automatizado de código abierto desarrollada por Amazon Web Services para analizar y demostrar propiedades de tu código Rust. Al igual que otras herramientas de razonamiento automatizado, Kani proporciona una forma de verificar de manera definitiva, mediante técnicas matemáticas, si una propiedad de tu código es verdadera en todas las circunstancias. De esta manera, Kani te ayuda a escribir un software de mejor calidad con menos errores.

**s2n QUIC**
[s2n-quic](https://github.com/aws/s2n-quic) es una implementación en Rust del protocolo IETF QUIC, que ofrece una API simple y fácil de usar. Con solo unas pocas llamadas a la API puedes tener tu propio servidor echo.

Puedes utilizarlos para acelerar la transferencia de grandes volúmenes de datos y archivos, ya que combina la confiabilidad de TCP con la velocidad y eficiencia de UDP, todo mientras mantiene una conexión segura.

También resulta útil en entornos donde los dispositivos necesitan comunicarse de manera eficiente y segura. s2n-quic puede proporcionar conexiones rápidas y confiables con un overhead reducido, ideal para dispositivos con recursos limitados (IoT/edge).

**aws-lc-rs**
[AWS Libcrypto para Rust](https://aws.github.io/aws-lc-rs/index.html) es una biblioteca criptográfica open-source con requisitos criptográficos FIPS. La librería es compatible a nivel de API con la biblioteca [ring](https://github.com/briansmith/ring) de rust. aws-lc-rs aporta mejoras de rendimiento para las familias de procesadores Arm y x86-64 en algoritmos criptográficos comúnmente utilizados.

**6. Compromiso con la Sostenibilidad:**
Este año también enfatizamos la importancia de la sostenibilidad en la tecnología. Iniciativas y herramientas que promueven la eficiencia energética y reducen la huella de carbono han sido un foco clave, reflejando nuestro compromiso continuo con un futuro más verde.

Hemos anunciado dos familias de chips diseñados por AWS, **AWS Graviton4** y **AWS Trainium2**, que ofrecen avances en eficiencia energética para una amplia gama de cargas de trabajo, incluyendo el entrenamiento de modelos de aprendizaje automático (ML) y aplicaciones de inteligencia artificial (AI) generativa. De esta forma ofrecemos a nuestros clientes una mayor variedad de opciones de despliegue, al mismo tiempo que nos esforzamos por ser más sostenibles y reducir nuestra huella de carbono.

Si quieres ver todas las novedades de sostenibilidad que se anunciaron en **re:Invent 2023**, te recomiendo el [post de Adrian Cockcroft](https://adrianco.medium.com/sustainability-talks-and-updates-from-aws-re-invent-2023-969100c46a6a) donde detalla todos los anuncios y actividades en este campo.

**7. Observabilidad y Chaos Engineering:**

**cdk-aws-observability-accelerator**
[cdk-aws-observability-accelerator](https://github.com/aws-observability/cdk-aws-observability-accelerator) es un conjunto de módulos diseñados para ayudarte a establecer la observabilidad en tus entornos AWS con servicios nativos de AWS y servicios de observabilidad gestionados por AWS, como Amazon Managed Service for Prometheus, Amazon Managed Grafana, AWS Distro for OpenTelemetry (ADOT) y Amazon CloudWatch.

Proporciona métricas seleccionadas, recolección de registros y trazas, tableros de CloudWatch, reglas de alerta y tableros de Grafana para tu infraestructura EKS, cargas de trabajo basadas en Java/JMX, NGINX y tus aplicaciones personalizadas.

El uso del Observability Accelerator con CDK permite una integración y despliegue rápido, aprovechando lenguajes de programación conocidos para una configuración personalizada y reutilizable de la infraestructura de monitoreo.

![CDK Observability Accelerator](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4itzlsb3i3u15z9iftoc.png)

**8. Comunidad y Colaboración:**
Este 2023 ha sido un año de crecimiento y fortalecimiento de nuestra comunidad. A través de eventos, hackatones y colaboraciones, hemos visto cómo la pasión y el ingenio nos han brindado nuevos proyectos y aplicaciones, que han acabado por integrarse en nuestro repertorio de herramientas. 

Seguramente ya habéis explorado una gran variedad de blogs y aplicaciones interesantes, pero dado que las Navidades pasan volando, quiero destacar especialmente estas tres contribuciones que personalmente me han sido muy útiles:

**cls3**

[cls3](https://aws-oss.beachgeek.co.uk/37k) es una herramienta muy práctica de **k.goto**, AWS Community Builder, que te ayuda a limpiar Buckets de S3. Vacia (es decir, elimina todos los objetos y versiones/marcadores de eliminación en) los Buckets de S3 o elimina los propios buckets. Puedes consultar la entrada de blog de apoyo [Herramienta para la eliminación rápida y el vaciado de buckets de S3 (versionado soportado)](https://aws-oss.beachgeek.co.uk/37l).

Por otro lado, **Abhishek Gupta** nos introduce [Use Amazon Bedrock and LangChain to build an application to chat with web pages](https://aws-oss.beachgeek.co.uk/3fu), donde demuestra cómo puedes desarrollar y desplegar una aplicación de chat utilizando AWS CDK, LangChain y, por supuesto, Go.

Y por último, nuestro querido **Martin Mueller**, nos enseña [cómo asegurar que la respuesta de nuestros LLMs tenga el formato correcto y contenga los datos esperados](https://dev.to/aws-espanol/valida-automaticamente-tus-respuestas-de-aws-bedrock-llm-32a6) cuando desplegamos nuestras aplicaciones de IA generativa.

Seguro que vosotros tendréis blogs favoritos y herramientas open-source sin las cuales ya no podéis vivir. Os invitamos a compartirlos en los comentarios! 

Con esto concluimos 2023, un año repleto de emociones y aprendizajes. A medida que nos preparamos para el **2024**, queremos daros las gracias por ser parte de esta increíble comunidad. Vuestro entusiasmo y colaboración son lo que hace que AWS Open Source sea un lugar tan especial. ¡Esperamos continuar este viaje explorando nuevas posibilidades y conociendo a nuevos colaboradores!

**¡Os deseamos unas felices fiestas  y un próspero año nuevo lleno de salud y despliegues sin errores!**