Slide 1

Slide 1 text

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.

Slide 2

Slide 2 text

- 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

Slide 3

Slide 3 text

- 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

Slide 4

Slide 4 text

- 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

- 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

Slide 7

Slide 7 text

- 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

Slide 8

Slide 8 text

- 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

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

No content