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.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  9. View Slide

  10. 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

    View Slide

  11. 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
    ♥️

    View Slide

  12. Copyright © 2022, Oracle and/or its affiliates
    Demos
    micronaut.io github.com/micronaut-projects/micronaut-core

    View Slide

  13. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    13

    View Slide

  14. View Slide