Micronaut JPA Application Performance in AWS Lambda

Introduction

In this article, we will be looking into how we can deploy a Micronaut application using GET, PUT, and POST, which can be called using an API Gateway. Then we will compare its performance when deployed with JVM runtime and as a native image.

We will also be focusing on creating an application that can be deployed on AWS Lambda and then calling the application as if it's being called using an API Gateway. 

Kicking Spring Native’s Tires

I've been playing with GraalVM Ahead-Of-Time compilation capability since I became aware of it. As a long-time Spring aficionado, I carefully monitored the efforts that the engineers at Tanzu have put into making Spring AOT-compatible. Recently, they announced the beta version of the integration. In this post, I want to check how easy it is to produce a (working!) Docker image from an existing Spring Boot application.

Introduction

GraalVM provides many different features. Among them, the component known as Substrate VM allows to AOT-compile regular bytecode to a native executable. The process "walks" the application starting from the main method at build time. Substrate VM leaves out the code that it doesn't follow out from the resulting binary.

Pros and Cons for Using GraalVM Native-Images

Java is becoming very progressive with a new release policy and we receive regularly every 6 month new features, enhancements or just previews to test it out and write them back our feedback that can be taken into account in further development.

The second line might be even more interesting. It's GraalVM Project that especially contains a new C2 JIT Compiler and multi-language support based on Truffle Framework. There is one more technology that deserves our attention — GraalVM Native-Image. Native image is a utility for converting Java applications into fully compiled binary code which is called native-image. The process of creating a native-image is called ahead-of-time compilation.