{"id":1829,"date":"2019-07-08T10:25:02","date_gmt":"2019-07-08T08:25:02","guid":{"rendered":"https:\/\/voxxeddays.com\/microservices\/?p=1829"},"modified":"2019-07-08T10:27:46","modified_gmt":"2019-07-08T08:27:46","slug":"emmanuel-bernard-on-quarkus-why-how-and-what","status":"publish","type":"post","link":"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/","title":{"rendered":"Emmanuel Bernard on \u201cQuarkus why, how and what\u201d"},"content":{"rendered":"<p><b>Hi Emmanuel, tell us who you are and what lead you into microservices?<\/b><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400\">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 \u201cCloud\u201d that allow us to instantly scale up or down, lets us declaratively express how we want our application topology to look like.<\/span><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><b>What will you be talking about at Voxxed Days Microservices?\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400\">We really looked at the problem space and addressed the main issues. Quarkus\u2019 launch has bene way beyond our wildest dreams and it seems it addresses an itch that the Java community had for a while.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>How is Quarkus compared with the good old Java EE application servers ? It looks like GraalVM is the differentiator here. Any other differences ?<\/b><\/p>\n<p><span style=\"font-weight: 400\">Quarkus has 4 main focuses that I would call differentiators<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Memory and startup time<\/b><\/p>\n<p><span style=\"font-weight: 400\">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 \u201cfixed\u201d memory cost. When you write and deploy 20 microservices instead of 1 monolith, these problems are exacerbated<\/span><\/p>\n<p><span style=\"font-weight: 400\">Quarkus addresses these problems by starting frameworks at build time instead of startup time. That\u2019s a huge start up time improvement but also memory usage improvement.<\/span><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Developer joy<\/b><\/p>\n<p><span style=\"font-weight: 400\">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:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">you only need a single configuration file in Quarkus (no persistence.xml, log.properties, beans.xml etc)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">We offer Hibernate with Panache, a layer above JPA and Hibernate ORM which simplifies writing entities, repositories and queries for common use cases.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Best of Breed Libraries and Standards<\/b><\/p>\n<p><span style=\"font-weight: 400\">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.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Good, see you soon then\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">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\u2019s 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.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">#livereload #supersonic #cloudnative<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>My contact information<\/b><\/p>\n<p><span style=\"font-weight: 400\">Twitter: https:\/\/twitter.com\/emmanuelbernard<\/span><\/p>\n<p><span style=\"font-weight: 400\">Blog: https:\/\/emmanuelbernard.com\/blog\/<\/span><\/p>\n<p><span style=\"font-weight: 400\">GitHub: https:\/\/github.com\/emmanuelbernard\/<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1301,"featured_media":1832,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Emmanuel Bernard on \u201cQuarkus why, how and what\u201d : Voxxed Days Microservices 2019<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Emmanuel Bernard on \u201cQuarkus why, how and what\u201d : Voxxed Days Microservices 2019\" \/>\n<meta property=\"og:description\" content=\"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 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/\" \/>\n<meta property=\"og:site_name\" content=\"Voxxed Days Microservices 2019\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vxdmicroservice\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-08T08:25:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-08T08:27:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/07\/Emmanuel-Bernard.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1253\" \/>\n\t<meta property=\"og:image:height\" content=\"621\" \/>\n<meta property=\"fb:app_id\" content=\"vxdmicroservice\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@agoncal\" \/>\n<meta name=\"twitter:site\" content=\"@vxdmicroservice\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\">\n\t<meta name=\"twitter:data1\" content=\"Antonio Goncalves\">\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data2\" content=\"3 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\",\"name\":\"Voxxed Days Microservices\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/vxdmicroservice\/\",\"https:\/\/www.instagram.com\/voxxeddaysmicroservices\",\"https:\/\/www.linkedin.com\/in\/voxxed-days-microservices-906115164\/\",\"https:\/\/www.youtube.com\/playlist?list=PLRsbF2sD7JVrhlYIKTI--IU6xcfUjdNt2\",\"https:\/\/twitter.com\/vxdmicroservice\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/06\/large-Voxxed_Days_Microservices_date_2019-01-2.png\",\"width\":1000,\"height\":387,\"caption\":\"Voxxed Days Microservices\"},\"image\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#website\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/\",\"name\":\"Voxxed Days Microservices 2019, Conference & workshops\",\"description\":\"A Developer Conference on Microservices\",\"publisher\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/voxxeddays.com\/microservices\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/07\/Emmanuel-Bernard.jpg\",\"width\":1253,\"height\":621,\"caption\":\"Emmanuel Bernard\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#webpage\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/\",\"name\":\"Emmanuel Bernard on \\u201cQuarkus why, how and what\\u201d : Voxxed Days Microservices 2019\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#primaryimage\"},\"datePublished\":\"2019-07-08T08:25:02+00:00\",\"dateModified\":\"2019-07-08T08:27:46+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#webpage\"},\"author\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#\/schema\/person\/871a4bfea3b1bf117a77bc3fbfeb5f14\"},\"headline\":\"Emmanuel Bernard on \\u201cQuarkus why, how and what\\u201d\",\"datePublished\":\"2019-07-08T08:25:02+00:00\",\"dateModified\":\"2019-07-08T08:27:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\"},\"image\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/07\/08\/emmanuel-bernard-on-quarkus-why-how-and-what\/#primaryimage\"},\"articleSection\":\"all\",\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#\/schema\/person\/871a4bfea3b1bf117a77bc3fbfeb5f14\",\"name\":\"Antonio Goncalves\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1fc6aa04011b2f0f9721df913b0fd415?s=96&d=mm&r=g\",\"caption\":\"Antonio Goncalves\"},\"description\":\"I am a senior software architect living in Paris. I work as a consultant in helping customers to set up their software architecture. My specialities are Java \/ Java EE and Open Source frameworks that evolve around it. As a former BEA consultant I have a great expertise in application servers (Weblogic, JBoss and GlassFish). So I decided to write a few books about it, create the Paris JUG and Devoxx France.\",\"sameAs\":[\"https:\/\/plus.google.com\/101641663893160877351\",\"https:\/\/twitter.com\/agoncal\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts\/1829"}],"collection":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/users\/1301"}],"replies":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/comments?post=1829"}],"version-history":[{"count":0,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts\/1829\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media\/1832"}],"wp:attachment":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media?parent=1829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/categories?post=1829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/tags?post=1829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}