
Discover Spring Native and GraalVM to build blazing fast microservices, compare JIT and ahead-of-time compilation, and deploy native images with Docker and Kubernetes.
Explore the Spring native overview and its eleven-part structure, covering benefits, drawbacks, and cloud and microservices impact, while outlining the ahead-of-time compilation engine and Spring Boot adoption.
Explore spring native, a library that compiles spring applications to native executables using a native image compiler, replacing the Java virtual machine.
Explore Spring native using GraalVM ahead-of-time compilation to create native images, with Maven and Gradle plugins, Docker image support, native hints for reflection, and hands-on labs.
Explore how spring native lowers cpu usage, memory footprint and image size, and delivers faster startup, consistent response times, and rapid scaling for microservices in cloud-based development.
Explore how spring native leverages native image and ahead-of-time compilation to reduce startup time, memory footprint, and storage, cutting cloud costs and improving scalability and flexibility.
Explore how spring native improves startup time and peak performance for microservices, enabling faster scaling, smaller containers, and efficient routing via an API gateway.
Spring Native drawbacks include the complexity of building a native image with Java and C++ toolsets, slower ahead-of-time compilation, and need for reflection, resources, dynamic proxies, and a fixed classpath.
Explore the spring native compilation process from application sources through the compiler plugin, Java bytecode, GraalVM native plugin, ahead-of-time compilation, and the native image compiler to a native executable.
Explore Spring native AOT engine and ahead of time compilation plugin, which processes input application, bytecode, and properties to generate source code, proxies, and native configuration inference from native hints.
Explore how Spring Boot 3 and Spring Native gain first-class support with ahead-of-time compilation, transformation, and native hints across Spring Data and Spring Security.
Explore how Spring Native performs build-time analysis to generate native images and optimized configurations using active native hints. Learn modules like Spring AOT, Spring Native Configuration, and Spring Native Tools.
Spring native compiles spring apps to native executables with chromium, delivering faster startup and smaller images for cloud, containers, and microservices. Note drawbacks and perform performance and risk analysis.
Explore the overview of GraalVM concepts and benefits for Spring Native microservices, outlining why to learn GraalVM, its drawbacks, and the two compilation modes: just-in-time and ahead-of-time.
Learn GraalVM's role as the foundation for Spring Native, focusing on ahead-of-time compilation and native image capability to enable clearer troubleshooting, framework insight, and informed adoption for complex projects.
GraalVM is a high-performance jdk distribution that boosts bootstrap speed and enables polyglot programming across java, python, ruby, javascript, with ahead-of-time and native image compilation plus debugging and profiling tools.
GraalVM boosts performance, startup speed, throughput, and memory efficiency with native image and just-in-time compilation. It enables polyglot interoperability across languages like Java, Kotlin, Scala, JavaScript, Ruby, R, and Python.
Explore GraalVM drawbacks for Spring native microservices. Understand slower native image builds, complex seed pipelines, fixed classpath, no lazy loading, and dynamic code configuration.
Weigh benefits, drawbacks, risks, and blockers to decide on GraalVM adoption. Compare incremental adoption with GMC and LLVM versus native image with EVM.
Analyze how just-in-time compilation blends compile-time and runtime work, converting bytecode to machine code in the Hotspot VM to balance execution and overhead.
Explore how the Hotspot VM implements just-in-time compilation using the compiler interface with C1 and C2 compilers, switching from C1 to C2 based on method call thresholds.
Examine the pros and cons of just in time compilation, including runtime optimizations and cross-platform benefits, versus startup time, memory overhead, and initial bytecode translation.
Explore advanced just-in-time compilation as the first runtime mode in Hotspot VM, using the Java level JVM compiler interface for adoption and performance gains with lower risk than ahead-of-time compilation.
Explore advanced just in time compiler performance across Java, Scala, Ruby, and R, revealing speedups from a few percent to over four times for various workloads.
Examine ahead-of-time compilation and native image generation from a Spring Native view, linking C/C++ style concepts to producing a self-sufficient native executable with an embedded Substratum VM.
Explore ahead of time compilation advantages for startup time and throughput, contrasting native image with just-in-time runtimes and highlighting benefits for stateless, scalable microservices.
Ahead of time compilation lowers CPU usage and memory footprint, speeds startup, and provides instant peak performance with smaller images, while offering limited reflection support and longer build times.
Explore GraalVM's native image and just-in-time options to accelerate Spring microservices, weighing startup time, memory footprint, and language interoperability against reflection and CI complexity, with a practical two-step adoption path.
Engage in hands-on setup and experiments with regular and advanced just-in-time compilers, the native image compiler, startup time comparisons, and build-time initialization, via Maven and trace agent.
Explore just-in-time compilation by examining Java bytecode, class files, and the JVM instruction set, then compare JIT and native image approaches to understand startup and performance gains.
Evaluate GraalVM advanced JIT performance across Java 11 and 17 runtimes, comparing to OpenJDK. Discover easy adoption and up to 30–40% improvements with Enterprise Edition.
Compile a Java program to bytecode and then to native code with graalvm native-image, and observe how constants and multiplication transfer from source to native assembly, while Hydra analyzes it.
Learn how to invoke the GraalVM native image compiler via a Maven plugin, configure a native profile, and build a native executable with main class and customizable properties.
Configure the native image compiler with properties files inside jars, handle overlaps via structured directories, and build using both jar and Maven workflows with custom options.
Explore runtime and build-time initialization in the VM native image, and see how static blocks and static fields are initialized to improve startup time with build-time initialization.
Use the tracing agent to auto-generate JNI, reflection, proxy, and resource configs, enabling GraalVM native image builds that load classpath resources such as DB properties.
Set up the environment and explore regular and advanced just-in-time compilation. Build native images with ahead-of-time compilation and use trace agent to resolve reflection and proxies limitations.
Build a microservices suite with products, customers, and orders; compile to executable Java, VM, native image, and Docker images; deploy on Kubernetes and compare Spring Native with Spring for scaling.
Explore Spring native microservices for products, orders, and customers, each with dedicated data storage and REST APIs, connected via an API gateway and service-to-service calls, deployed with Docker and Kubernetes.
Develop the products micro service from a Spring Boot skeleton, add domain logic, and build a native executable, Docker image, and Kubernetes deployment for a local cluster.
Create a Spring Boot web app skeleton with a minimal rest API auto-documented by Swagger, exposing a controller to fetch all products or by id.
Add domain logic to a microservice by implementing product use cases for fetching all products and by ID, invoked from products controller, with data loaded from json into embedded database.
Convert the microservice to a Spring native application by adding native dependencies, Open API, and a native maven profile, enabling fast startup and reflection-friendly JPA handling.
Configure the microservice for docker, build a linux native image with the native image builder via Maven docker profile, and run it as a docker container with two rest endpoints.
Deploy the Docker image to Kubernetes by creating a deployment and service from the Kubernetes file, launch the pod, and expose REST API endpoints.
Build a second microservice for customer definitions, exposing REST endpoints to list all customers and get a customer by ID, with a Docker image, native image, and a Kubernetes deployment.
Build and deploy the orders microservice to store and process orders by integrating customer and product data from microservices, using spring native, rest template, environmental variables, and Docker Compose deployments.
Spring Native and GraalVM enable six times faster auto scaling by reducing bootstrap time, letting services scale from 1 to 20 quickly and scale down to zero when idle.
Create microservices as native executables with Spring Native, packaged in Docker images, and deploy with Docker Compose and Kubernetes to demonstrate auto scaling, six times faster than Spring Boot.
Explore spring native and GraalVM to build native executables from spring applications, delivering faster startup and smaller memory footprints. Understand tradeoffs, including complex builds and deployment with Docker or Kubernetes.
In this course, you will learn how to use Spring Native and GraalVM to build blazing fast Microservices. This will be achieved by:
Optimizing application startup time
Reaching instant peek performance
Optimizing application auto-scaling capabilities
You will learn how to use GraalVM Ahead of Time Compilation and Spring Native to build efficient workloads for the cloud.
This course is divided into fourth parts:
Spring Native Overview
GraalVM Overview
GraalVM Deep Dive
Spring Native Deep Dive
It includes theoretical and practical knowledge.
Theoretical knowledge is delivered through 23 lectures, in which you will learn:
Spring Native Overview
GraalVM Overview
Performance improvements
Relation between Spring Native and GraalVM
Benefits, Drawbacks, Risks
Impact on the cloud and microservices development
Spring Native and GraalVM Compilation Process
Architecture, Features, and Modules
Just in Time Compilation
Advanced Just in Time Compilation
Ahead of Time Compilation – Native-Image
Practical knowledge is delivered through 16 labs, in which you will learn:
GraalVM Advanced Just in Time Compilation
GraalVM Ahead of Time Compilation – Native Image Compiler
GraalVM Native Image Compiler Maven Plugin
GraalVM Runtime vs Build-Time Initialization
GraalVM Native Image Tracing Agent
Spring Native Project Setup
Spring Native Project Compilation into an Executable Binary
Spring Native Project Compilation into a Docker Image
Usage with Docker Compose
Usage with Kubernetes
Source Code, Bytecode, and Native Machine Code Comparison
After completing this course, you will have the knowledge, required to make a decision, on whether to adopt Spring Native and GraalVM or not. You will know how to use both technologies efficiently, to optimize your workloads.