The Graal Development Kit for Micronaut (GDK) is a build of a curated set of Micronaut® framework modules and their required libraries for building portable cloud native microservices that take full advantage of powerful cloud platform services and that can be compiled ahead-of-time by GraalVM Native Image. The GDK also provides project creation utilities and VS Code extensions for application development and deployment.

The modules are designed from the ground up to ensure they can be compiled with GraalVM Native Image to produce native executables that are ideal for microservices: they start instantly, provide peak performance with no warmup, and have a small memory footprint.

Each module is supported by extensive documentation and guides that provide instructions for use as well as how to incorporate the module into Maven or Gradle build tools.

What is “Cloud Native”?

The term “cloud native” refers to the concept of building and running applications to take advantage of the distributed computing services offered by cloud platforms. Cloud native applications are designed from their outset to exploit the scale, elasticity, resiliency, and flexibility that the cloud provides. As defined by the Cloud Native Computing Foundation, “Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. These features enable loosely coupled systems that are resilient, manageable, and observable.”

Portable Cloud Native Application Development

Each of the leading cloud platforms provide a collection of services that can be used to quickly build, deploy, and monitor applications. However, the APIs for those services are typically proprietary: developers must invest time to understand the details of APIs and they end up with applications that are locked to a specific cloud platform. As a result, moving an application from one cloud platform to another requires significant development effort.

GDK Overview

For example, an application to manage secrets could use Oracle Cloud Infrastructure’s Vault service, Amazon Web Services’ Secrets Manager, or Google Cloud Platform’s Secret Manager. Each secret management services provides its own API which means the application is tightly coupled to one platform. If a decision is made to change cloud providers, the application code must be changed.

Oracle believes that public clouds are now mature enough that service abstraction APIs can be constructed that are sufficient for most use cases. Many public cloud services such as messaging, logging, tracing, and identity management either support the same third-party libraries (such as Kafka, slf4j, and Micrometer) or provide a pluggable provider abstraction (for example, identity management) that enables your source code to stay isolated from vendor-specific implementations.

The modules provide platform independent support for a set of core cloud services including object storage, secret management, streaming, tracing, and more. With these modules it is easy to build portable cloud native Java-based Micronaut applications on top of managed services provided by leading public cloud platforms.

Multicloud Application Creation

To support multicloud Micronaut development, Oracle has developed multi-module Maven and Gradle project structures that separate application source code from cloud-specific configuration files. This structure enables you to develop and deploy Micronaut applications to multiple cloud platforms. To make it easy to get started with multicloud development, you can use the command line tool and GDK Launcher to generate application skeletons that include all the necessary dependencies, including each cloud platform’s Java SDK.

VS Code Extensions

Oracle provides extensions to support the development of Micronaut microservices in VS Code.

The Graal Development Kit for Micronaut Launcher provides code assistance and validation for Micronaut configuration files. It also supports the generation of Micronaut Data-enabled persistent classes from database tables via integration with the Oracle Developer Tools for VS Code (SQL and PLSQL) extension.

Oracle also provides a VS Code extension to support Oracle Cloud Infrastructure’s DevOps service. It automatically generates build and deployment pipelines as well as source code management to make it easy to transition from local development to cloud-based development and deployment.

Graal Development Kit for Micronaut Certification, Support and Security

The curated modules provided by GDK include:

Service Oracle Cloud Infrastructure Amazon Web Services Google Cloud Platform Microsoft Azure
Database Oracle Autonomous Database, MySQL Database Aurora Cloud SQL Azure Database for MySQL
Email Email Delivery Simple Email Service N/A (SendGrid) Azure Communication Services*
Kubernetes Container Engine for Kubernetes (OKE) Elastic Kubernetes Service Google Kubernetes Engine (GKE) Azure Kubernetes Service (AKS)
Logging Logging CloudWatch Cloud Logging Azure Monitor Logs
Metrics Monitoring CloudWatch Cloud Monitoring Azure Monitor Metrics
Object Storage Object Storage Simple Storage Service (S3) Cloud Storage Azure Blob Storage
Secret Management Vault Secrets Manager Secret Manager Azure Key Vault
Security Oracle Identity Cloud Service(IDCS) Cognito Cloud Identity Microsoft Entra ID*
Serverless Functions Lambda Cloud Run Azure Functions*
Streaming (Kafka) Streaming Managed Streaming for Apache Kafka (MSK) Confluent Cloud Azure Event Hubs
Tracing Application Performance Monitoring X-Ray Cloud Trace Azure Application Insights*

*Coming soon

Each module requires a particular set of platform and dependent libraries. For each release, Oracle tests all these libraries on each cloud provider and ensures they can be used in applications compiled ahead-of-time with GraalVM Native Image. Memory footprint and performance throughput are tracked to verify that each release demonstrates consistently good performance with no degradation from prior releases. This ensures that applications remain portable as cloud providers make changes in their SDKs, and as required third-party packages are updated.

Support

The GDK builds of Micronaut are fully supported by Oracle for applications deployed to Oracle Cloud Infrastructure under the same terms as other Oracle Cloud Infrastructure libraries including the Oracle Cloud Infrastructure SDK. Support for the GDK is also included with the Verrazzano Subscription for use on premises and other cloud platforms.

The GDK support for builds of each major Micronaut version will continue for one year after the subsequent major version is released. GDK support encompasses both the Active Development and Active Maintenance periods.

Reference Architecture

Service usage made possible by the modules included in the GDK builds of Micronaut align with the recommendations made by Oracle’s cloud reference architecture, which in turn aligns with the goals of cloud native computing as defined by the Cloud Native Computing Foundation. Oracle customers will find that the GDK makes it easier to build applications that implement the reference architecture principles.