Hybrid Deployments

Open Liberty Loves Spring

Share this post:

It’s now easy to include Open Liberty in your Spring Boot project

It’s been a few weeks since my talk at Spring One, and I thought it might be a good time to recap and expand a bit on some of what was said (watch the presentation WebSphere on Pivotal Cloud Foundry on YouTube).

IBM was at Spring One to talk about deploying WebSphere on Pivotal Cloud. For a while, the only deployment option was the open source WebSphere Liberty buildpack on GitHub. The buildpack supports Java EE and Spring apps, packaged as EARs or WARs, deployed to Open Liberty.

We’ve recently expanded support for Spring apps with Open Liberty. Since 18.0.0.2, Spring Boot applications can be deployed directly to Liberty, Liberty can be embedded in the Spring Boot JAR, and we’ve added support for building Docker images that can be deployed to the Pivotal Container Service (PKS) or any other container service. The figure below summarizes the Spring Boot / Liberty deployment options:

Open Liberty

Running an app server, Cloud Foundry, or Docker? Liberty meets you where you are!

We think Liberty and Spring go well together, and it makes sense to make that easy. As I said at Spring One: Liberty loves Spring! And we want to make it easy for Spring Boot developers to love Liberty.

Want to add Open Liberty to your Spring Boot app?

We want to make it easy for you to use Open Liberty with Spring Boot. To do that, we meet you where you are; specifically:

  • It needs to be extremely easy to include Liberty in your Spring Boot project
  • Adding Liberty should be a done in a familiar way

Introducing the boost-maven-plugin! The boost-maven-plugin (GitHub) is a simple plugin you add to your pom.xml, and with a little configuration, packages Liberty inside your Spring Boot jar:

<plugin>
  <groupId>io.openliberty.boost</groupId>
  <artifactId>boost-maven-plugin</artifactId>
  <version>0.1</version>
</plugin>

We started the boost-maven-plugin with a simple idea: make it really easy to do things you want to do. Want to add Open Liberty to your Spring Boot app? Configure the package goal as shown below:

<plugin>
  <groupId>io.openliberty.boost</groupId>
  <artifactId>boost-maven-plugin</artifactId>
  <version>0.1</version>
  <executions>
    <execution>
      <goals>
        <goal>package</goal>
      </goals>
    </execution>
  </executions>
</plugin>

This embeds Open Liberty into your Spring Boot application during the package phase of your maven build. It actually runs after the Spring Boot package phase to ensure that the Spring Boot application packaging is not interrupted or altered.

Want to use Docker with your Spring Boot app? Docker is the future of deploying applications. Spring Boot applications are no exception. To make it easy and quick to get started, the boost-maven-plugin has a docker-build goal which will build a Docker image for your app. If you don’t have a Dockerfile, it will create an opinionated Dockerfile for you. Just run the docker-build goal or configure your plugin executions in your pom.xml:

<plugin>
  <groupId>io.openliberty.boost</groupId>
  <artifactId>boost-maven-plugin</artifactId>
  <version>0.1</version>
  <executions>
    <execution>
      <goals>
        <goal>docker-build</goal>
      </goals>
    </execution>
  </executions>
</plugin>

For more details on how to use the boost-maven-plugin to build Docker images and push them to a Docker repository, check out the openliberty.io blog post “Build and push Spring Boot Docker images with boost-maven-plugin.”

Why Open Liberty for Spring Boot?

Spring Boot already comes with Tomcat as its default embedded servlet container. So you might wonder, why use Liberty instead?

Well, Open Liberty is small but powerful. Designed from the ground up, Liberty is a small, fast, lightweight runtime for cloud-native Java applications, and there’s some really cool technology inside:

  • Auto-tuning thread pool
  • Advanced security integrations for social login
  • Enterprise security solutions

Simply stated, Open Liberty is an enterprise-grade open source server runtime for Java developers.

Open Liberty embraces Spring apps

Open Liberty We’re updating Open Liberty to embrace Spring apps more than ever before. But why are we doing this? It comes down to this: we honestly believe that Open Liberty is the best runtime for Java applications and are always working hard to improve it.

Open Liberty was designed for virtualized environments, so it’s perfect for the cloud and containers. We also designed Liberty to be really easy to use, and we want as many people as possible to play with it. That’s why Open Liberty exists – to get people easy (and free) access to Liberty!

Stay Connected

We are constantly exploring better ways to make Liberty more valuable to Spring developers and to contribute to the overall Spring experience. If you have ideas, create a pull request or come talk to us on gitter.im/OpenLiberty/boost.

I’m excited about what we can build together. See you at Spring One 2019 in our hometown of Austin, TX! In the meantime, please check out the video of our WebSphere on Pivotal Cloud Foundry @ Spring One 2018 talk.

More Hybrid Deployments stories
November 2, 2018

Scaling Your Java MicroProfile-Based Microservices App (2 of 3)

In this blog series, we cover how to handle scalability for Liberty’s MicroProfile-based microservices, focusing on externalizing configuration, security, and fault tolerance. In this second entry in the series, you'll learn how to secure the REST APIs using MicroProfile JWT Propagation.

Continue reading

October 22, 2018

Scaling Your Java MicroProfile-Based Microservices App (1 of 3)

In the next three entries of this blog series, we’ll cover how to handle scalability for Liberty’s MicroProfile-based microservices. First up: Externalizing your configuration in support of different environments like dev, test, and production. Each requires specific values that must be changed based on the deployment environment. The MicroProfile Config Feature makes it easy.

Continue reading

October 17, 2018

Certified Kubernetes Deployments Made Easy with WebSphere Liberty Cloud Pak

You want to have confidence in your cloud-based deployment of WebSphere Liberty on Kubernetes. Developers want an environment that's ready to go, administrators want an infrastructure that's trusted. Who wants to be in the business of stitching together component layers and then verifying they're compatible with each other? With IBM Cloud Paks, rely on a trusted and tested release with key components verified as a set.

Continue reading