Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño. En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Iván López Martín
Slides de mi charla de Greach 2013: "Todo lo que me hubiera gustado saber cuando empecé a desarrollar con Grails"
Video de la charla: http://greach.es/sessions-2013/ivan-lopez-martin-todo-lo-que-me-hubiera-gustado-saber-cuando-empece-a-desarrollar-con-grails
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
Slides de mi charla de Codemotion "http://codemotion.es/talk/19-october/88". El código fuente de las demos está disponible es https://github.com/lmivan/codemotion-2013.
El vídeo de repetción de la charla en @madridgug está disponible en: http://www.youtube.com/watch?v=dkDub1QLqmM
En un mundo hiper-conectado el concepto Tiempo Real es cada vez más utilizado y las arquitecturas "message driven" son la manera de conseguirlo porque permiten crear aplicaciones modulares y escalables.
En esta charla veremos un tipo de arquitectura totalmente distinta a la estandar de Grails para aplicaciones web que nos permitirá servir contenido en tiempo real a muchos clientes de manera rápida y sencilla teniendo distintos módulos independientes que interactuarán entre sí.
Esta conferencia fue dictada originalmente durante la 3ra Campus Party en Bogotá (2010). En ella se muestra cómo la JVM presenta al desarrollador con un abanico de lenguajes que van más allá de Java. Se hace una breve introducción a Jython, JRuby, Scala y Clojure, mostrando cómo el uso de estos lenguajes dinámicos puede simplificar la creación de programas, su utilidad como lenguajes de scripting o de “pegamento”, y la sencillez con la que se puede establecer una relación simbiótica con Java y sus librerías.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Iván López Martín
Slides de mi charla de Greach 2013: "Todo lo que me hubiera gustado saber cuando empecé a desarrollar con Grails"
Video de la charla: http://greach.es/sessions-2013/ivan-lopez-martin-todo-lo-que-me-hubiera-gustado-saber-cuando-empece-a-desarrollar-con-grails
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
Slides de mi charla de Codemotion "http://codemotion.es/talk/19-october/88". El código fuente de las demos está disponible es https://github.com/lmivan/codemotion-2013.
El vídeo de repetción de la charla en @madridgug está disponible en: http://www.youtube.com/watch?v=dkDub1QLqmM
En un mundo hiper-conectado el concepto Tiempo Real es cada vez más utilizado y las arquitecturas "message driven" son la manera de conseguirlo porque permiten crear aplicaciones modulares y escalables.
En esta charla veremos un tipo de arquitectura totalmente distinta a la estandar de Grails para aplicaciones web que nos permitirá servir contenido en tiempo real a muchos clientes de manera rápida y sencilla teniendo distintos módulos independientes que interactuarán entre sí.
Esta conferencia fue dictada originalmente durante la 3ra Campus Party en Bogotá (2010). En ella se muestra cómo la JVM presenta al desarrollador con un abanico de lenguajes que van más allá de Java. Se hace una breve introducción a Jython, JRuby, Scala y Clojure, mostrando cómo el uso de estos lenguajes dinámicos puede simplificar la creación de programas, su utilidad como lenguajes de scripting o de “pegamento”, y la sencillez con la que se puede establecer una relación simbiótica con Java y sus librerías.
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
GraalVM es una nueva tecnología creada por Oracle para la JVM que permite convertirse además en una máquina virtual "universal", permitiendo ejecutar código de JS, Python, Ruby, C, C++ o R. Jerónimo nos hará una introducción a GraalVM: - como reemplazo del JIT de Java - para generar ejecutables ultrarápidos de Java sin necesitar la JRE - para ejecutar otros lenguajes contándonos sus bondades y sus actuales limitaciones.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
Micronaut es un framework para microservicios en la JVM que no utiliza reflection y pre-calcula todo lo necesario para el funcionamiento de las aplicaciones ahead-of-time (AoT) durante la compilación. De esta forma consigue que las aplicaciones arranquen extremadamente rápido y que consuman muy poca memoria.
¿Qué pasaría si te dijera que puedes reducir el tiempo de arranque en órdenes de magnitud? ¿Y si pudieras reducir aún más el consumo de memoria?
GraalVM es una nueva máquina virtual de Oracle que soporta muchos lenguajes en runtime. Además GraalVM tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. En esta charla aprenderás cómo funciona GraalVM y cómo puedes aprovechar toda su potencia para convertir tus aplicaciones Micronaut a binarios nativos.
Micronaut es un nuevo framework de la JVM para desarrollar microservicios modulares y muy fácilmente testeables en Java, Kotlin y Groovy.
Es esta sesión de live-coding verás qué fácil es empezar a desarrollar tus aplicaciones cloud-native con Micronaut. Aprenderás cómo funciona el soporte reactive, a testear las aplicaciones, el cliente http, service discovery y el soporte para GraalVM.
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Aunque la JVM está diseñada para tener un rendimiento óptimo en procesos de larga ejecución, frameworks como Micronaut han conseguido que podamos construir aplicaciones JVM y desplegarlas en entornos como AWS Lambda.
En esta charla veremos cómo funciona la integración de Micronaut y AWS Lambda y cómo podemos desplegar nuestras aplicaciones Micronaut. Además aprenderemos cómo utilizar GraalVM y los custom-runtimes de AWS para mejorar enormemente los tiempos de arranque y el consumo de memoria.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
GraalVM es una nueva tecnología creada por Oracle para la JVM que permite convertirse además en una máquina virtual "universal", permitiendo ejecutar código de JS, Python, Ruby, C, C++ o R. Jerónimo nos hará una introducción a GraalVM: - como reemplazo del JIT de Java - para generar ejecutables ultrarápidos de Java sin necesitar la JRE - para ejecutar otros lenguajes contándonos sus bondades y sus actuales limitaciones.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
Micronaut es un framework para microservicios en la JVM que no utiliza reflection y pre-calcula todo lo necesario para el funcionamiento de las aplicaciones ahead-of-time (AoT) durante la compilación. De esta forma consigue que las aplicaciones arranquen extremadamente rápido y que consuman muy poca memoria.
¿Qué pasaría si te dijera que puedes reducir el tiempo de arranque en órdenes de magnitud? ¿Y si pudieras reducir aún más el consumo de memoria?
GraalVM es una nueva máquina virtual de Oracle que soporta muchos lenguajes en runtime. Además GraalVM tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. En esta charla aprenderás cómo funciona GraalVM y cómo puedes aprovechar toda su potencia para convertir tus aplicaciones Micronaut a binarios nativos.
Micronaut es un nuevo framework de la JVM para desarrollar microservicios modulares y muy fácilmente testeables en Java, Kotlin y Groovy.
Es esta sesión de live-coding verás qué fácil es empezar a desarrollar tus aplicaciones cloud-native con Micronaut. Aprenderás cómo funciona el soporte reactive, a testear las aplicaciones, el cliente http, service discovery y el soporte para GraalVM.
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Aunque la JVM está diseñada para tener un rendimiento óptimo en procesos de larga ejecución, frameworks como Micronaut han conseguido que podamos construir aplicaciones JVM y desplegarlas en entornos como AWS Lambda.
En esta charla veremos cómo funciona la integración de Micronaut y AWS Lambda y cómo podemos desplegar nuestras aplicaciones Micronaut. Además aprenderemos cómo utilizar GraalVM y los custom-runtimes de AWS para mejorar enormemente los tiempos de arranque y el consumo de memoria.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
Presentación en exclusiva para RootedCON de una extensión para el navegador Chrome que lo transformará en un navegador de ataque. Consiguiendo altas velocidades de ataque sin hacer caer el web-server puesto que se adapta a el. Permite estadísticas de ataque, es multiproceso y multi thread con un bus de comunicación interno entre los componentes, muy ergonómico y sencillo de usar.
Algunas características: Fuzzea, craquea, ejecuta los eventos javascript, audit pasivo mientras navegas, IA de aprendizaje, tanteador de paramestros, logger, notificador de inicio/fin, gestor de wordlists y simbiosis con apps externas.
El web hacking no es nada nuevo, y es un tema mas que explotado, sin embargo una app free revolucionaria que va a ser usada en todo el planeta, por su potencia y facilidad de uso.
Según la evolución de las herramientas de web hacking, cada vez se han ido unificando mas en tools que lo hacen todo y cada vez mas cercanas al navegador (proxies) pero ahora la tool de ataque es el propio navegador, el cual realizara el hack manual y también el hack automatico combiando.
Las páginas web con contenido dinamico, hacen que muchas tools queden obsoletas al no emular el javascript, y aunque se emule el javascript nunca se hará mejor que desde el propio navegador. Esta tool dispara los eventos javascript de la página para atacar desde un estado de normalidad y adaptandose a la velocidad que absorva el servidor. A su vez, aprovecha la sandbox de protección mas potente que existe, para evitar vulnerabildiades de contra-ataque (ataque a traves del ataque)
La ponencia, combinará detalles técinos sobre comunicación entre componentes chrome y la sandbox de protección, con evolución del web-hacking y un poco de inteligencia artificial.
La IA consiste en:
- aprendizaje simple: retroalimentar las wordlist según se navega
- sistema experto: tantear parámetros de la forma mas efectiva
- aprendizaje complejo: aprender los ataques manuales elaborados por el auditor.
Similar a Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos! (20)
Es 2024 y ya hemos dado por sentado que testear nuestras aplicaciones es esencial. Escribimos test unitarios sin problemas, pero, ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring? Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdfIván López Martín
In 2024, we all agree that testing our applications is essential. We write unit tests without any trouble, but what about integration tests? How can we test the different services we use in our Spring applications in a safe and reliable way?
Testcontainers integrates seamlessly and transparently with Spring Boot to offer a unit testing-like experience, but with integration tests that use real services running in containers: Kafka, Postgresql, MySql, Elasticsearch, and anything else that can be run in Docker.
In this talk, you will learn how to use Testcontainers in your Spring Boot tests without compromising the speed of your development cycle and leveraging all the potential it offers
Es 2023 y ya hemos dado por sentado que tenemos que testear nuestras aplicaciones. Escribimos test unitarios sin problemas y somos relativamente felices.
Pero ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring?
Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud GatewayIván López Martín
Imagine this scenario. You follow an OpenAPI-first approach when designing your services. You have a distributed architecture with multiple services and all of them expose a RESTful API and have their OpenAPI Specification. Now you use Spring Cloud Gateway in front of them so you can route the requests to the appropriate service and apply cross-cutting concerns. But, what happens with the OpenAPI of every service? It would be great if you could generate a unique OpenAPI for the whole system in the Gateway. You could also expose and transform only selected endpoints when defining them as public. And what about the routes? You would like to reconfigure them dynamically and on-the-fly in the Gateway when there is a change in a service, right?
Stop imagining. In this talk, I will show you how we have done that in our product and how we are leveraging the programmatic Spring Cloud Gateway API to reconfigure the routes on the fly. You will also see it in action during the demo!
Codemotion Madrid 2023 - Testcontainers y Spring BootIván López Martín
Es 2023 y ya hemos dado por sentado que tenemos que testear nuestras aplicaciones. Escribimos test unitarios sin problemas y somos relativamente felices.
Pero ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring?
Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
CommitConf 2023 - Spring Framework 6 y Spring Boot 3Iván López Martín
Spring Framework 6 es la base de la nueva generación del ecosistema Spring con la mirada puesta en 2023 y más allá. Spring Framework 6 requiere Java 17 e introduce soporte de primer nivel de Ahead of Time (AoT) e imágenes nativas de GraalVM.
Por otro lado Spring Boot 3 es la nueva versión del framework que se aprovecha de todas las ventajas y novedades de Spring 6 para hacer más fácil y sencillo desarrollar nuestras aplicaciones Java.
En esta charla veremos las principales novedades tanto de Spring Framework 6 como Spring Boot 3 como el nuevo cliente HTTP pero nos centraremos sobre todo en el uso de AOT y GraalVM. ¡Además tendremos la posibilidad de verlo en acción!
¿Quieres aprender cómo desarrollar un API REST con Spring Boot? ¿Que acceda a base de datos? ¿Que esté listo para desplegar en producción? ¿Y qué me dices de GraalVM? ¿Quieres ver como tu aplicación construida como imagen nativa arranca en unos pocos milisegundos?
En esta charla verás todo eso y mucho más sin usar slides, sólo el IDE para desarrollar la aplicación en menos de 50 minutos.
jLove 2020 - Micronaut and graalvm: The power of AoTIván López Martín
Micronaut is a reflection-free app-development framework that uses ahead-of-time (AoT) compilation to precompute everything in the application, paving the way for lightning-fast startup times and significantly reduced memory consumption. What if I told you that you can reduce the startup time by orders of magnitude? And what if you could reduce memory consumption even more?
GraalVM is a new universal virtual machine from Oracle that supports a polyglot runtime environment. GraalVM has the ability to compile Java applications down to native machine code, making it an ideal partner for Micronaut.
In this talk you will learn how you can take advantage of GraalVM's powerful capabilities to convert your Micronaut applications to run as binary native images.
Developing Micronaut Applications With IntelliJ IDEAIván López Martín
This session covers:
- How to create Micronaut applications with different options and features directly from the IDE.
- Configuring auto-completion.
- Auto-discovery of controller endpoints.
- HTTP client.
Micronaut provides out-of-the-box integrations with a lot of tools and third-party libraries: Consul, Eureka, Hibernate, Kafka, Mongo, Micrometer, Zipkin, Hystrix, Swagger,... But sometimes this is not enough and you need to integrate with a new one.
In this talk, we will discuss the different options that we have to create a new configuration for Micronaut: bean factories, conditional beans, configuration properties,... and you will learn how to make the most out of it.
Alexa, Siri, Cortana, Google Assistant … voice assistants are in fashion and have come to stay. With them it is possible to do many actions that a few years ago seemed like science fiction: controlling the lights of the house, listening to our favorite music, knowing the weather tomorrow,… controlling everything with our voice!
In this talk we will talk about Amazon Echo and Alexa. You will learn how easy it is to develop new skills and deploy them to AWS Lambda without spending a euro.
I’ll bring an Echo Dot to the talk to show you the fun things you can do with it. I’m pretty sure that after this talk you can’t wait to have one!
Micronaut is a new JVM-based, full-stack framework for building modular, easily testable microservice applications with Java, Kotlin, and Groovy.
In this live-coding session, you will see how fast you can start developing “natively” cloud-native microservices with Micronaut. You will learn about the reactive support, testing, http-client, service discovery, fallback, and GraalVM support.
CrossDvlup Madrid 2019 - Alexa, encantado de conocerteIván López Martín
Alexa, Siri, Cortana, Google Assistant,... los asistentes de voz están de moda y han llegado para quedarse. Con ellos es posible realizar muchas acciones que hace unos años parecían ciencia ficción: controlar las luces de casa, escuchar nuestra música favorita, conocer el tiempo que hará mañana... controlando todo con ¡nuestra voz!
En esta charla hablaremos de Amazon Echo y su asistente Alexa y aprenderás lo fácil que es desarrollar nuevos skills y desplegarlos en AWS Lambda sin gastar un euro y de una manera muy fácil y sencilla. Llevaré un Echo a la charla para mostrar las cosas divertidas que puedes hacer con él.
¡Seguro que después de esta charla no podrás esperar a tener uno!
Micronaut es un nuevo framework de la JVM para desarrollar microservicios reactivos en Java, Groovy y Kotlin.
En esta sesión de live coding verás qué fácil es desarrollar microservicios "natively" cloud-native con Micronaut. Aprenderás sobre el cliente http, cómo testear tus aplicaciones, service discovery, fallback,... e incluso el soporte para GraalVM.
Codemotion Madrid 2018 - Microservicios Reactivos con MicronautIván López Martín
Micronaut es un nuevo framework de la JVM para desarrollar microservicios reactivos en Java, Groovy y Kotlin. Entre sus principales características destaca el arranque en menos de un segundo, aplicaciones muy ligeras que se pueden ejecutar en menos de 10 MB de ram, inyección de dependencias sin uso de reflection en runtime,... Todo ello lo consigue al estar realizar todas estas tareas en tiempo de compilación. En esta charla veremos sus características principales: Inyección de dependencias, configuración, servidor y cliente HTTP, testeo, service discovery...
Alexa, Siri, Cortana, Google Assistant,... los asistentes de voz están de moda y han llegado para quedarse. Con ellos es posible realizar muchas acciones que hace unos años parecían ciencia ficción: controlar las luces de casa, escuchar nuestra música favorita, conocer el tiempo que hará mañana,... controlando todo con ¡nuestra voz!
En esta charla hablaremos de Amazon Echo y su asistente Alexa y aprenderás lo fácil que es desarrollar nuevos skills y desplegarlos en AWS Lambda sin gastar un euro y de una manera muy fácil y sencilla. Llevaré un Echo Dot a la charla para mostrar las cosas divertidas que puedes hacer con él. ¡Seguro que después de esta charla no podrás esperar a tener uno!
Micronaut is a new JVM-based, full-stack framework for building modular, easily testable microservice applications with Java, Kotlin, and Groovy.
In this live-coding session, you will see how fast you can start developing "natively" cloud-native microservices with Micronaut. You will learn about the reactive support, testing, http-client, service discovery, fallback, and GraalVM support.
Heisenbug 2018 - Test your Java applications with SpockIván López Martín
Remember the old days when you tested using JUnit? How boring it was? You made a lot of excuses to avoid testing your code. Luckily those dark days now belong to the past because Spock is with us.
Spock is a Groovy-based testing and specification framework for Java and Groovy applications that makes writing tests fun again. We can write beautiful and highly expressive tests because of its DSL and all the power that Groovy provides us.
In this live-coding session, you'll learn the basics of Spock and you'll see how easily you can test a Java application. After the talk you won't have any excuse not to test your applications, so you have been warned before coming to the talk!
Functional is the new buzzword of the last years. Everyone wants to be functional and immutable, everyone wants to use the more functional and pure programming language... The structured programming and object oriented programming now belong to the past. In this talk you'll learn how to write your Java code in a more functional way using the Vavr library (formerly known as Javaslang). Don't worry because I won't talk about monads, functors and all those buzzwords related to functional programming. Everything will be practical examples that you can use in your daily work.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
7. Iván López @ilopmar
Limitaciones
- Dynamic class loading (no soportado)
- Reflection (con configuración)
- Dynamic proxy (con configuración)
- Unsafe Memory Access (parcialmente)
- Class initializers (soportado)
- InvokeDynamic bytecode y method handlers (parcialmente)
- Lambda (soportado)
- Finalizers (no soportado)
- Threads (soportado)
8.
9. Iván López @ilopmar
Micronaut
- Framework para microservicios en la JVM
- Ultra-ligero & reactive (basado en Netty)
- Java, Groovy & Kotlin
- Ahead of Time compilation (AoT)
- Sin reflection ni runtime proxies
- Arranque muy rápido
- Consumo de memoria bajo
- Natively Cloud Native
- Micronaut Data
- Soporte para GraalVM
10. Iván López @ilopmar
Crear aplicación con soporte para GraalVM
$ mn create-app basic-app
--features=graal-native-image
11. Iván López @ilopmar
Soporte en Micronaut para GraalVM
- Dependencias
- Dockerfile
compileOnly "com.oracle.substratevm:svm"
annotationProcessor "io.micronaut:micronaut-graal"
FROM oracle/graalvm-ce:19.2.0.1 as graalvm
COPY . /home/app/basic-app
WORKDIR /home/app/basic-app
RUN native-image --no-server -cp build/libs/basic-app-*-all.jar
FROM frolvlad/alpine-glibc
EXPOSE 8080
COPY --from=graalvm /home/app/basic-app .
ENTRYPOINT ["./basic-app"]
12. Iván López @ilopmar
Soporte en Micronaut para GraalVM (II)
- native-image.properties
Args = -H:IncludeResources=logback.xml|application.yml|bootstrap.yml
-H:Name=basic-app
-H:Class=example.micronaut.Application
17. Iván López @ilopmar
Depurar errores
[basic-app:15340] classlist: 14,103.05 ms
[basic-app:15340] (cap): 3,947.49 ms
[basic-app:15340] setup: 6,654.60 ms
[basic-app:15340] analysis: 68,716.43 ms
Error: No instances of io.netty.buffer.PooledByteBufAllocator are allowed in the image heap as this
class should be initialized at image runtime. Object has been initialized by the
io.micronaut.buffer.netty.NettyByteBufferFactory class initializer with a trace:
at io.netty.buffer.PooledByteBufAllocator.<init>(PooledByteBufAllocator.java:187)
at io.netty.buffer.PooledByteBufAllocator.<clinit>(PooledByteBufAllocator.java:168)
at io.netty.buffer.ByteBufUtil.<clinit>(ByteBufUtil.java:84)
at io.netty.buffer.ByteBufAllocator.<clinit>(ByteBufAllocator.java:24)
at io.micronaut.buffer.netty.NettyByteBufferFactory.<init>(NettyByteBufferFactory.java:62)
at io.micronaut.buffer.netty.NettyByteBufferFactory.<clinit>(NettyByteBufferFactory.java:44)
. To fix the issue mark io.netty.buffer.PooledByteBufAllocator for build-time initialization with
--initialize-at-build-time=io.netty.buffer.PooledByteBufAllocator or use the the information from
the trace to find the culprit and --initialize-at-run-time=<culprit> to prevent its instantiation.
. To fix the issue mark io.netty.buffer.PooledByteBufAllocator for build-time initialization with
--initialize-at-build-time=io.netty.buffer.PooledByteBufAllocator or use the the information from
the trace to find the culprit and --initialize-at-run-time=<culprit> to prevent its instantiation.
18. Iván López @ilopmar
Depurar errores
Detailed message:
Trace: object io.micronaut.buffer.netty.NettyByteBufferFactory
object io.micronaut.buffer.netty.NettyByteBufferFactory$$Lambda$95116b6497efb4cbd0dc7c4dc91186562d629e7b
object io.micronaut.core.convert.TypeConverter$$Lambda$802fd3b66b18a7bf114f797df2507ad969fcb1c0
object java.util.concurrent.ConcurrentHashMap$Node
object java.util.concurrent.ConcurrentHashMap$Node[]
object java.util.concurrent.ConcurrentHashMap
object io.micronaut.core.convert.DefaultConversionService
method io.micronaut.http.server.netty.NettyHttpResponseFactory.status(HttpStatus, String)
Call path from entry point to io.micronaut.http.server.netty.NettyHttpResponseFactory.status(HttpStatus, String):
at io.micronaut.http.server.netty.NettyHttpResponseFactory.status(NettyHttpResponseFactory.java:61)
at io.micronaut.http.HttpResponseFactory.status(HttpResponseFactory.java:74)
at io.micronaut.http.HttpResponse.serverError(HttpResponse.java:189)
at
io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$exceptionCaughtInternal$3(RoutingInBoundHandler.java:403)
at io.micronaut.http.server.netty.RoutingInBoundHandler$$Lambda$1102/974221323.call(Unknown Source)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:140)
at java.lang.Thread.run(Thread.java:748)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:460)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1
21. Iván López @ilopmar
Y esto… ¿cómo se testea?
- Crear una imagen nativa tarda mucho
- Y necesita mucha RAM
- GraalVM cambia muy rápido (y a veces rompen cosas)...
- ...y nosotros también ;-)
- Usamos Travis para Micronaut, pero...
- ...Travis tiene límite para la RAM
- Necesitábamos otra opción.
22.
23. Iván López @ilopmar
Tests usando Gitlab CI
- Job periódico cada hora
- Sólo si nuevos commit en Micronaut o Graal
- Compila Graal desde el código fuente
- Crea imágenes nativas de aplicaciones de prueba de Micronaut
- Ejecuta tests funcionales
- https://github.com/micronaut-graal-tests
- https://gitlab.com/micronaut-projects/micronaut-graal-tests
24. Iván López @ilopmar
Aplicaciones de prueba Micronaut-GraalVM
- Basic application: DI, serialización de POJO, tipos reactivos
- Micronaut function: AWS Function
- Service discovery: Soporte Consul & HTTP Client
- Static resources & views: Handlebars, Thymeleaf, Freemarker y Velocity
- Endpoints de Management & Metrics
- Distributed tracing: Zipkin
- RabbitMQ: Fire-and-forget & RPC
- Security con JWT
33. Iván López @ilopmar
Resumen
GraalVM es una tecnología
nueva e interesante
Micronaut AoT es el
complemento perfecto
Soporte out-of-the-box
en Micronaut
Mejoras en cada release Arranque más rápido &
menos consumo de
memoria
Desarrolladores
contentos y productivos
34. SLIDE TITLE 27 PT ALL CAPS
¡Gracias!
@ilopmar
lopez.ivan@gmail.com
https://github.com/ilopmar
Iván López
http://bit.ly/codemotion-mn-graal
¿Preguntas?