close

Sébastien Deleuze

Sébastien Deleuze

Spring Framework committer

Lyon, France

Blog Posts by Sébastien Deleuze

Spring Native 0.12.1 available now

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Native 0.12.1 has been released and is now available from https://repo.spring.io/release.

This release includes 15 bug fixes, documentation improvements, and dependency upgrades to Spring Boot 2.7.1 and Native Build Tools 0.9.13. Thanks to all those who have contributed with issue reports and pull requests.

GitHub | Issues | Documentation

Read more...

Spring Native 0.12.0 available now

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Native 0.12.0 has been released and is now available from https://repo.spring.io/release.

This release includes 12 bug fixes, documentation improvements, and dependency upgrades to GraalVM 22.1, Spring Boot 2.7.0 and Spring Cloud 2021.0.3. Thanks to all those who have contributed with issue reports and pull requests.

GitHub | Issues | Documentation

Read more...

Spring Native 0.11.3 available now

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Native 0.11.3 has been released and is now available from https://repo.spring.io/release.

This release includes 25 bug fixes, documentation improvements, and dependency upgrades with GraalVM 22.0, Spring Boot 2.6.4 and Spring Cloud 2021.0.1. Thanks to all those who have contributed with issue reports and pull requests.

GitHub | Issues | Documentation

Read more...

New AOT Engine Brings Spring Native to the Next Level

On behalf of the team and everyone who has contributed, it is my pleasure to announce the release of Spring Native 0.11, which provides native support for Spring Boot 2.6. This ambitious release is the result of five months of hard work by the Spring team, who have been working on a brand new architecture to bring Spring support for creating native executables with GraalVM to the next level. You can already try it on start.spring.io!

Learn more about Spring Native 0.11 and see it in action in this new Spring Tips video from Spring Developer Advocate Josh Long.

Read more...

Spring Native 0.10.0 available now

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Native 0.10.0 has been released. It is based on Spring Boot 2.5 and GraalVM 21.1.

This release is packed with features, highlights include:

  • Introduction of native testing.

  • A new official Gradle plugin from the GraalVM team.

  • Introduction of ahead-of-time proxies usable on classes.

It also includes 43 bug fixes, documentation improvements, and dependency upgrades. Thanks to all those who have contributed with issue reports and pull requests.

Read more...

Announcing Spring Native Beta!

Today, after one year and half of work, I am pleased to announce that we’re launching the beta release of Spring Native and its availability on start.spring.io!

In practice, that means that in addition to the regular Java Virtual Machine supported by Spring since its inception, we are adding beta support for compiling Spring applications to native images with GraalVM in order to provide a new way to deploy Spring applications. Java and Kotlin are supported.

Those native Spring applications can be deployed as a standalone executable (no JVM installation required) and offer interesting characteristics including almost instant startup (typically < 100ms), instant peak performance and lower memory consumption at the cost of longer build times and fewer runtime optimizations than the JVM.

Read more...

Spring Native for GraalVM 0.8.3 available now

On behalf of everyone that has contributed, I am pleased to announce that Spring Native for GraalVM 0.8.3 has been released and is available from Spring milestone repository, check the updated reference documentation for more details.

Spring Native for GraalVM provides an incubating support for compiling Spring applications to native executables using the native-image compiler, in order to provide a native deployment option designed to be packaged in lightweight containers. In practice, the target is to support your Spring application (typically a Spring Boot one), unmodified, on this new platform.

Read more...

The path towards Spring Boot native applications

I would like to use the opportunity of our Spring GraalVM Native 0.7.0 release to give you a status update about our work on Spring Boot native images.

Why?

Native image provides a way to build and run Spring Boot applications with different characteristics than a regular JVM deployment:

  • The output is a native executable that contains your application with a subset of the JDK and the dependencies required to run it.

  • In practice the executable would likely be shipped in an highly optimized container image (FROM scratch Docker image is supported) with reduced surface attack which is good fit with Kubernetes.

  • Startup time is almost instant and peak performance is available immediately, allowing support for scale-to-zero (serverless) applications including for regular Spring Boot web applications.

  • Memory consumption is reduced, which is a good fit for systems split into multiple microservices.

As you would expect, native images are not a free lunch and those interesting capabilities come with a few drawbacks:

  • GraalVM native is a young platform which is far less mature than the JVM.

  • This new flavor of Java is not yet well supported and tested by JVM libraries.

  • It requires initialization, resources, reflection and proxy explicit configuration.

  • Build time is very long and build memory consumption is high.

  • Lower throughput and higher latency (more details ).

Obviously native image is a moving target and some of those characteristics are likely to evolve in the future. The Spring team currently collaborates actively with the GraalVM team in order to ensure Spring and more globally the JVM ecosystem integrated via Spring Boot works well when compiled as native images. This effort includes fixes and new features in GraalVM native, changes to Spring itself, but also additional work to improve testability and maintainability with this GraalVM native platform.

It is also worth noticing that the scope of native images is now wider than GraalVM since Mark Reinhold has recently announced Project Leyden, an effort to standardize native images at Java platform level.

Read more...

Spring Fu 0.3.0 and beyond

I am happy to announce that Spring Fu 0.3.0 is available. As a reminder, Spring Fu is an incubator for Spring Boot programmatic configuration using DSLs in order to configure it explicitly with code in a declarative way, achieving great discoverability thanks to auto-complete.

JaFu is back!

This new milestone brings back JaFu (the Java DSL) in addition to KoFu (the Kotlin DSL). JaFu was removed in 0.1.0 because at that point, I had not the bandwidth to support both Java and Kotlin DSLs, and in term of API I was not sure that the Java variant was attractive enough to justify such effort, but I have changed my mind for various reasons:

  • I received a lot of requests to bring it back

  • Java as a language is moving faster

  • Getting more control on how configuration is applied is interesting for Java developers as well as Kotlin ones

  • Functional approach is naturally very efficient on the JVM and a good fit with GraalVM native images

  • 2 great new contributors have join the team: Audrey Neveu with a focus on KoFu and Arjen Poutsma with a focus on JaFu. Welcome to them!

Read more...