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:


mi茅rcoles, 16 de noviembre de 2022

Proxy Pattern Deep Dive

Everybody knows the proxy pattern, but how can you use it effectively? What kinds of proxy patterns are available and how can you build patterns more effectively with these? Why is reflection needed for this? Most importantly, how can we only use the Core JDK?

In this talk we will start from the basics and move straight on to DynamicProxies, Dynamic-/Static-ObjectAdapter, DynamicStaticProxies at runtime and more.
Would it influence your team members to start using functional aspects in your Core Java Project?
How we can combine this with other pattern, Invokedynamic or maybe with another language such as Kotlin?

We will have a detailed view on the possibilities to reduce the amount of code with this Pattern, and we will see how we could make it more generic.
One of the main points will be the combination of this patterns with for example NestedBuilder-Pattern and more.
After this you will have a better understanding of this pattern group from the practical point of usage. All pattern are build up from scratch, to give a feeling of the way to develop your own pattern based on this talk, or how you could change it for the needs of your project.

We will have a deep dive into this pattern group, which I am sure you will enjoy. This talk is based on the German book "Dynamic Proxies" written by Dr. Heinz Kabutz and myself.

About Sven Ruppert:
Sven spent almost 20 years as a consultant worldwide in automotive, aerospace, insurance, banking, UN and WorldBank before joining JFrog as a developer advocate. Sven has been giving lectures at international conferences and regularly publishing online and in classic magazines and books for nearly ten years. As a developer advocate for JFrog, Sven deals with DevSecOps, cybersecurity and cyberdefense, and traditional developer topics such as Core Java/Kotlin, mutation, and distributed unit testing.

Video:


martes, 20 de septiembre de 2022

September 2022: Groogle, when Google meet Groovy

After the summer break we restart our monthly-ish meetups. In this time Jorge Aguilera (@pvidasoftware) will give a talk in ENGLISH about Groogle, a Groovy DSL we built on top of Google APIs.

After a while working with the Google API Java Library I realized I was repeating lot of lines of code in every project so I wrote a small DSL (domain specific language), who offer the power of these APIs to users without specific programming knowledges Groogle is a DSL in Groovy who allows to the user work with Drive, Sheet, Gmail and more Google Services without the complexity of Java projects. Only edit the script with your editor and run it from a terminal.

In this talk I'll guide to you how easy is to create a new DSL using Groovy and let the user the freedom to write programs they understand basically because they are using their own language.

Video:


Source code: https://gitlab.com/groogle
Slides: https://groogle.gitlab.io/slides/apacheConf.html
--
Enlace al meetup: https://www.meetup.com/es-ES/madrid-gug/events/288410861/

mi茅rcoles, 22 de junio de 2022

Junio 2022: Demistifying "Event" related software concepts and methodologies

No matter exactly what type of software you are building, at least a few terms starting with the word "event" must have tried to invade your professional space. "Event-driven" has already evolved to the level of a magical buzzword in IT marketing and sales activities.

But the tech terms list is much longer. It includes "event streaming","event storming","event sourcing","event store", "event modeling","event notification","event-carried state transfer",...

Getting dizzy already? Don't worry. Many developers feel this way.

This talk is an “event-dizziness” cure. It'll walk you through the entire "event land" and explain what is what. It’ll discuss the origins, intention, and applicability of each term. So the next time you face the "event-driven" label, you can ask the right questions and make educated choices.

About the Speaker: Milen Dyankov.

Milen is a Developer Advocate at AxonIQ on a mission to help fellow Java developers around the globe design and build clean, modular, and future-proof software! After more than 20 years of developing, designing, and consulting on various solutions for leading European companies, he currently spends most of his time supporting communities and organizations, speaking at conferences all over the world and researching his favorite topics around Java modularity, 渭services, distributed systems architecture, and software craftsmanship.

Video: