Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ecrire un microservice Java natif avec Micronaut et GraalVM

Ecrire un microservice Java natif avec Micronaut et GraalVM

Cédric Champeau

April 13, 2023
Tweet

More Decks by Cédric Champeau

Other Decks in Technology

Transcript

  1. Building a native microservice with Micronaut and GraalVM Cédric Champeau

    Micronaut, Oracle Labs @[email protected] @CedricChampeau Copyright © 23-4-13, Oracle and/or its affiliates Micronaut® is a registered trademark of Object Computing, Inc. Use is for referential purposes and does not imply any endorsement or affiliation with any third-party product. Unauthorized use is strictly prohibited.
  2. - Working at Oracle Labs on Micronaut Main focus on

    build plugins and dev productivitity @[email protected] - Formerly working at Gradle Inc - Author of static compiler of Groovy - Amateur astronomer @[email protected] https://www.astrobin.com/users/melix/ https://bit.ly/3eGD0GM (Youtube) About me Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  3. - Micronaut is focused on modern architectures like Serverless and

    Microservices - Also a complete framework for any type of application - Lightweight, reactive (HTTP Client/Server based on Netty) - Annotation processor to compute framework infrastructure at compile time Micronaut Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  4. - Micronaut is OSS software licensed under Apache license version

    2 - Micronaut Foundation - Technology Advisory Board: Jetbrains, Microsoft, Thoughtworks, Amazon, Google, Oracle, Object Computing, Agile Developer - Sponsors: Object Computing, Oracle, Microstream, Safri.net, Vizor, HiveMQ, Gradle Inc, Jetbrains Micronaut is well supported Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  5. Micronaut computes: - All dependency & configuration injection - Annotation

    metadata, meta-annotations - AOP proxies - Bean introspections - And all other framework infrastructure - Reflection, runtime proxy, and dynamic classloader free Micronaut = Build Time Framework Infrastructure Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  6. - More than 50 modules! - Micronaut SQL: Database access

    - MySQL/MariaDB, Postgres, Oracle, SQL Server, - Pure SQL, Hibernate, Hibernate Reactive, JPA - Micronaut Data - Ahead of Time (AoT) compilation to pre-compute queries for repository interfaces - Micronaut Validation - e.g @NotBlank, @Min(18), ... Example Micronaut Modules Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  7. - Micronaut Cache - Caching abstraction - Caffeine, JCache, Redis,

    Ehcache, Hazelcast, Infinispan, MicroStream - Micronaut Security - Authentication/Security rules - Micronaut Discovery - Consul, Eureka, Spring Cloud Config - And many more! - Kafka, MQTT, RabbitMQ, ElasticSearch, MongoDB, Neo4j, OpenAPI, Pulsar, ... Example Micronaut Modules Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  8. - Cloud support: Azure, AWS, Google Cloud, Oracle Cloud -

    Micronaut Spring - Integrate Spring components into a Micronaut application - Run Spring applications as Micronaut applications - Expose Micronaut Beans to a Spring Application - Micronaut JAX-RS - using JAX-RS annotations and types in a Micronaut application And also... Copyright © 2022, Oracle and/or its affiliates micronaut.io github.com/micronaut-projects/micronaut-core
  9. High-performance JDK distribution Increases application throughput, reduces latency, reduces memory

    use Graal just-in-time (JIT) compiler that runs on top of HotSpot, written in Java native-image ahead-of-time (AoT) compiler compiles Java applications into small self- contained native binaries Micronaut = Build Time Framework Infrastructure Copyright © 2022, Oracle and/or its affiliates graalvm.org github.com/graalvm/graalvm-demos oracle.com/graalvm
  10. Micronaut + GraalVM Native Image are a match made in

    heaven Less work to configure Native Image because Micronaut eliminates reflection, runtime proxies, bytecode generation and dynamic classloading Startup time 20ms and Memory Consumption 18MB! Micronaut GraalVM ♥️ Copyright © 2022, Oracle and/or its affiliates graalvm.org github.com/graalvm/graalvm-demos oracle.com/graalvm ♥️