Graal Cloud Native (GCN) 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. GCN 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.
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 GCN 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 GCN Command Line tool and 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 GraalVM Tools for Micronaut extension 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 Cloud Native Certification, Support and Security
The curated modules provided by GCN include:
|Service||Oracle Cloud Infrastructure||Amazon Web Services||Google Cloud Platform|
|Database||Oracle Autonomous Database, MySQL Database||Aurora||Cloud SQL|
|Email Delivery||Simple Email Service||N/A (SendGrid)|
|Kubernetes||Container Engine for Kubernetes (OKE)||Elastic Kubernetes Service||Google Kubernetes Engine (GKE)|
|Object Storage||Object Storage||Simple Storage Service (S3)||Cloud Storage|
|Secret Management||Vault||Secrets Manager||Secret Manager|
|Security||Oracle Identity Cloud Service(IDCS)||Cognito||Cloud Identity|
|Streaming (Kafka)||Streaming||Managed Streaming for Apache Kafka (MSK)||Confluent Cloud|
|Tracing||Application Performance Monitoring||X-Ray||Cloud Trace|
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.
The GCN 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 GCN is also included with the Verrazzano Subscription for use on premises and other cloud platforms.
GCN support for builds of each major Micronaut version will continue for one year after the subsequent major version is released. GCN support encompasses both the Active Development and Active Maintenance periods.
Service usage made possible by the modules included in the GCN 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 GCN makes it easier to build applications that implement the reference architecture principles.