Hi Emmanuel, tell us who you are and what lead you into microservices?
Hello, I am Java Champion, Distinguished Engineer and Chief Architect Data at Red Hat. Most of my work is Open Source (middleware). I am most known for my contributions and leadership of the Hibernate projects. My most recent endeavour is Quarkus.
I came to microservices by the platform. Microservices are only possible because developers now have access to the right level of abstraction from the platforms their application is hosted on. We have very agile platforms like Kubernetes or the “Cloud” that allow us to instantly scale up or down, lets us declaratively express how we want our application topology to look like.
My historical angle on Microservices is data which remains one of the hardest problem to crack in a microservices architecture. While each microservice is isolated and should own its datastore, communication between them is required to flow the organisation data between them.
What will you be talking about at Voxxed Days Microservices?
I will be discussing Quarkus https://quarkus.io, a new modern Java application stack specifically tailored for microservices or what is often referred to as Cloud Native. Quarkus comes from the broader effort Red Hat has been doing around Kubernetes and containers, around enabling microservices architectures and how Java fits in this picture.
We really looked at the problem space and addressed the main issues. Quarkus’ launch has bene way beyond our wildest dreams and it seems it addresses an itch that the Java community had for a while.
How is Quarkus compared with the good old Java EE application servers ? It looks like GraalVM is the differentiator here. Any other differences ?
Quarkus has 4 main focuses that I would call differentiators
Memory and startup time
It wants to address the startup time and memory density problem of Java. Java as an ecosystem (JVM+frameworks) is a great platform but has a relatively slow startup time (prohibitive for functions as a service FaaS) and high “fixed” memory cost. When you write and deploy 20 microservices instead of 1 monolith, these problems are exacerbated
Quarkus addresses these problems by starting frameworks at build time instead of startup time. That’s a huge start up time improvement but also memory usage improvement.
The second aspect is that Quarkus applications can be compiled into native executable thanks to Substrate VM (part of GraalVM). This goes one step further in startup time improvements and memory usage.
Quarkus is then 2 to 10 times less memory hungry than a typical alternative stack. One of the big innovations in Quarkus is to limit as much as possible the bootstrap work that the Java framework ecosystem does at startup time. Java as a community has (ab)used the dynamic nature of the platform (class scanning, reflection, dynamic proxies etc), and Quarkus offers 99% of this flexibility without the memory and startup time cost tradeoff.
From the start, we wanted to help developers get the job done really quickly. We bring live reload offering node.js like experience of code and instant refresh. We simplify boilerplate configuration redundancy and add facilities on top of known frameworks or standards to help address the 80% use cases much much more easily. Let me give two iconic examples:
The live reload is a big departure from Java EE and its war packaging and deployment model but also from any Java application that out to be compiled, packaged and started between changes.
Best of Breed Libraries and Standards
You already have 5 years of experience with Quarkus. The APIs you use to write a Quarkus application are the APIs from the frameworks and standards you love and use: Camel, Hibernate and JPA, RESTEasy and JAX-RS, etc. It relies then on the massive ecosystem that Java EE has allowed to bloom.
Good, see you soon then
I am really excited about Quarkus and the general massive turn that the Java ecosystem is taking with build time bootstrap and ahead of time compilation. To me that’s going to be an even bigger wave of innovation than @annotation brought with Java 5. And more importantly, it brings Java back to an excellent position in the Cloud Native game where it was lagging behind compared to platforms like nodejs and Go.
#livereload #supersonic #cloudnative
My contact information