Getting Started with Quarkus

Getting Started with Quarkus

Getting Started with Quarkus Michael P. Redlich 1 Who’s Mike? • Bachelor of Science, Computer Science • “Petrochemical Research Organization” • Java Queue News Editor, InfoQ • Leadership Council, Jakarta EE Ambassadors • Amateur Computer Group of New Jersey 2 Objectives • What is Quarkus? • Why Quarkus? • Get Started Building an Application • Live Demo (yea!) • Quarkus Resources 3 What is Quarkus? “A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best-of-breed Java libraries and standards.” Quarkus website: https://quarkus.io 4 What is Quarkus? • Supersonic Subatomic Java! • A cohesive, fun-to-use, full-stack framework • A portmanteau of: • quark • us • Latest version: 1.1.1 5 What is OpenJDK HotSpot? • The default Java Virtual Machine (JVM) for the JDK since Java 1.3 • Continually analyzes a program’s performance for hot spots • Written in C++ 6 What is GraalVM? “A universal virtual machine for running applications in JavaScript, Python, Ruby, R, JVM- based and LLVM-based languages.” GraalVM website: https://graalvm.org 7 What is GraalVM? • Builds a native image (standalone executable) of an application • Written in Java • Latest version: 19.3.0.2 8 Why Quarkus? • Modern applications: • Cloud, mobile and IoT • Containers, orchestration, microservices, reactive, FaaS, 12-factor, cloud-native • Re-think how Java can best be utilized to address these new deployment environments and application architectures 9 Why Quarkus? • Container first • Unifies imperative and reactive • Developer joy 10 Container First • Optimized for low memory and fast startup: • First class support for Graal/SubstrateVM • Build-time metadata processing • Reduction in use of reflection • Native image pre-boot 11 Container First 12 Unifies Imperative and Reactive • The client/server model has changed • Quarkus supports today’s paradigms: • HTTP microservices • reactive applications • message-driven microservices • serverless 13 Imperative @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } 14 Reactive @Inject @Channel(“kafka”) Publisher<String> reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher<String> stream() { return reactiveSay; } 15 Developer Joy • Unified configuration • Zero configuration • Streamlined code (80/20) • No-hassle native executable generation 16 Best-of-Breed Libraries • Quarkus leverages a multitude of libraries 17 Best-of-Breed Libraries • Eclipse MicroProfile • Hibernate • Eclipse Vert.x • JPA • JAX-RS • JTA • RESTEasy • Apache Kafka • CDI • Apache Camel • Netty 18 Let’s Get Started… 19 Default Project $ mvn io.quarkus:quarkus-maven-plugin:1.1.0.Final:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" $ cd getting-started $ mvn compile quarks:dev 20 Hello 21 Native Image 22 Container 23 Quarkus Resources •https://quarkus.io •https://infoq.com/news/2019/03/ redhat-release-quarkus/ •https://infoq.com/articles/redhat- release-quarkus-1-0/ 24 Contact Info [email protected] @mpredli redlich.net/portfolio github.com/mpredli01 25 Thanks! 26.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    26 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us