martes, 23 de mayo de 2023

Micronaut CRaC

En esta charla, Sergio del Amo introduce CRaC (Coordinated Restore at Checkpoint) y Micronaut CRaC: 

  • Introducción a CRaC (Coordinated Restore at Checkpoint)
  • La integración de CRaC en Micronaut framework.
  • Micronaut CRaC y AWS Lambda SnapStart.
  • Opciones de distribución para CRaC y Micronaut framework.
En esta charla aprenderás que es CRaC, sus beneficios e inconvenientes y como usarlo en tus aplicaciones.

Sobre Sergio
Sergio del Amo es Micronaut Product Development Lead en Unity Foundation. Es miembro del Micronaut Foundation Board Of Directors y del Technology Advisory Board.
Sergio es un core committer del framework desde su creación. Ha escrito o editado casi todas las guías de Micronaut framework y contribuido a módulos como seguridad, AWS, Views, RSS, CRaC, MicroStream, Problem+JSON, Email,..
Sergio da charlas a menudo en conferencias y grupos de usuario sobre Micronaut Framework y otras tecnologías del ecosistema Java. Además es un fan de la automatización y el ecosistema de Apple.

Video:



martes, 11 de abril de 2023

Gestionando memoria en la JVM como si fuera C

Como en otros muchos lenguajes, en Java la memoria heap es gestionada. Esto es, el programa reserva memoria explícitamente, pero no indica cuando liberarla y delega en el recolector de basura.

Esto tiene grandes ventajas, pero también tiene algunos inconvenientes que se hacen más problemáticos cuando el programa tiene que trabajar con gran cantidad de datos o procesarlos muy rápido. Por ejemplo sistemas como Apache Kafka o bases de datos como Apache Pinot evitan en gran medida usar memoria gestionada y en su lugar reservan y liberan memoria manualmente en lo que se conoce como memoria offheap.

Esta es una charla técnica y práctica sobre cómo usar esta memoria en la JVM, cuándo merece la pena usarla y cómo afecta a nuestro código y nuestros despliegues incluyendo ejemplos en aplicaciones y librerías reales.

Sobre Gonzalo Soy ingeniero de software especializado en desarrollar base datos en Java. Me encanta destripar la magia que hay detrás de las librerías y frameworks que uso en mi día a día y entender cómo diseñar y programar sistemas de alto rendimiento. He trabajado contribuyendo en ToroDB, Logtrust/Devo y Apache Pinot.

Video:


Slides: https://slidr.io/gortiz/using-memory-in-the-jvm-as-it-was-c#1

martes, 28 de marzo de 2023

Spring + Native + Kubernetes = Sí se puede!

Este mes hemos tenido Micronaut, Quarkus en Kubernetes, así que ahora toca a Spring Boot🍃. En esta sesión tendremos otra perspectiva de como podemos usar Java en Kuberntes sin sufrimiento alguno. Siguiendo los mismo patrones y herramientas que ya conocemos, empezaremos desde el segundo mejor sitio de Internet 👉 https://start.spring.io, crearemos una aplicación de zero y terminaremos desplegando un nuevo Operador de forma nativa en Kubernetes. ¿Aceptas el reto? Si no tienes experiencia con Kubernetes o Operadores, únete y lanza todas tus dudas a nuestro presentador!.

Ponente
Abel Salgado Romero, Ingeniero de Software @ Spring Commercial Team desde 2020. Actualmente trabajando en llevar Spring Cloud Gateway a Kubernetes de forma nativa y facil usando Operadores. Fuera del trabajo, miembro de Barcelona JUG, Open-source advocate, Linux user/gamer y mentenedor de Asciidoctor Maven Plugin.



Presentación y código

martes, 7 de marzo de 2023

Desarrollo local de aplicaciones Java en Kubernetes

En esta charla, veremos cómo utilizar una nueva característica de Eclipse JKube para mejorar nuestra experiencia de desarrollo con Kubernetes. "remote-dev" que es como se llama esta nueva funcionalidad, nos permite programar nuestra aplicación desde el entorno local como si éste se tratase de un contenedor más del cluster. Si combinamos esto con tecnologías como Quarkus que nos permiten programar la aplicación en vivo, podemos obtener un feedback instantáneo del comportamiento de nuestra aplicación cuando se integra con otros componentes. Durante la demo, Marc nos mostrará cómo podemos utilizar esto con distintos frameworks y tecnologías incluso más allá de Java.

 

Video:


miércoles, 1 de marzo de 2023

Java de Alto Rendimiento: cuando las librerías estándar son lentas

QuestDB es una base de datos open source especializada en series temporales y optimizada para ser muy rápida. Está implementada casi por completo en JAVA, lo que nos planteaba varios retos ya que queríamos tener rendimiento predecible y escapar del garbage collector.

Además, queríamos aprovechar al máximo las capacidades del hardware y los sistemas operativos modernos, y trabajar tan a bajo nivel como fuera posible. En la práctica esto significa que nuestro JAVA es bastante atípico y que tuvimos que reescribir una gran parte de las librerías estándar.

En esta sesión te contaremos la arquitectura general del proyecto y veremos el ciclo de ejecución de una query para entender algunas de las optimizaciones que hemos desarrollado y el efecto que tienen en el rendimiento.

Video:


jueves, 23 de febrero de 2023

Implementando operadores de Kubernetes en Java con Micronaut

Sesión conjunta entre Madrid-JUG y Madrid-GUG con Álvaro Sánchez-Mariscal.

Micronaut es un framework para la JVM moderno, full stack y diseñado para construir aplicaciones modulares, eficientes y fácilmente testeables.

Micronaut soporta un amplio abanico de tecnologías, una de las cuales es Kubernetes, permitiendo a los desarrolladores de aplicaciones construir aplicaciones cloud native que sean desplegadas en un cluster de Kubernetes, y que puedan beneficiarse de funcionalidades como configuración distribuida  y descubrimiento de servicios (service discovery). Una de las funcionalidades del módulo Micronaut Kubernetes es el soporte incluido para implementar operadores de Kubernetes.

El esta charla, el commiter de Micronaut y autor de Micronaut Kubernetes Álvaro Sánchez-Mariscal, demonstrará como implementar operadores de Kubernetes en Java con Micronaut. Habrá una demostración en vivo que incluye lo siguiente:

- Una aplicación, escrita en Micronaut, cuyo propósito es ser desplegada a través de un operador de Kubernetes.

- Otra aplicación, también escrita en Micronaut, que contiene la lógica del operador de Kubernetes, y que creará Kubernetes deployments de la aplicación anterior.
- Un CRD (Kubernetes custom resource definition) que se usará para gestionar el despliegue de la primera aplicación, y ante el cual reaccionará el operador de Kubernetes.

Video: