What Red Hat is providing
Red Hat OpenShift Application Runtimes (RHOAR) is a recommended set of products, tools, and components for developing and maintaining cloud-native applications on the Red Hat OpenShift platform. As part of this offering, Red Hat is extending its support to Spring Boot 2 and related frameworks for building modern, production-grade, Java-based cloud-native applications.
Spring Boot lets you create opinionated Spring-based standalone applications. The Spring Boot runtime also integrates with the OpenShift platform, allowing your services to externalize their configuration, implement health checks, provide resiliency and failover, and much more. To learn more about how Spring Boot applications integrate with the wider Red Hat portfolio, check out the following OpenShift Commons Briefing by Thomas Qvarnstrom:
What's new
As part of this extended support, Red Hat has added support for OpenJDK 11 via the Red Hat build of OpenJDK 11. OpenJDK 11 introduces many new features for the Java platform, including the ultra-low pause-time garbage collector (Shenandoah), security enhancements, and more. All Red Hat distributions of Long-Term Support (LTS) releases of OpenJDK 8 and OpenJDK 11 are supported for development and production for all Java workloads, so that you have the convenience and confidence to develop and test in Windows or Linux-based environments and deploy your solution to a 100% compatible, fully supported OpenJDK.
Red Hat also provides full support for a range of Spring Boot Starters, making it simple for developers to integrate their applications with other Red Hat Middleware and cloud services:
- Undertow for web projects (JSP, MVC, Spring REST)
- Persistence with Hibernate
- Monitoring through Actuator and Prometheus
- Distributed tracing through Jaeger
- Kubernetes and OpenShift via Spring Cloud Kubernetes
- Caching and distributed data through Infinispan/Red Hat Data Grid
- Messaging via AMQP 1.0 and Apache ActiveMQ Artemis/Red Hat AMQ
- Transaction support via Narayana
And you can secure your Spring Boot apps using Keycloak/Red Hat Single Sign-On.
These starters and integrations allow developers to quickly build enterprise-grade apps using available best-of-breed technologies.
Versioning
Red Hat supports both Spring Boot 1.5.17 and Spring Boot 2.1.2 on Red Hat OpenShift. Spring Boot 2.1.2 adds additional features and frameworks, but many Spring Boot 1.5.x applications remain in production today, so supporting both is critical for our existing customers and wider development communities.
Support details
The Spring ecosystem contains many popular frameworks for building various application types. When used with RHOAR, support from Red Hat is limited to those frameworks primarily targeting modern cloud-native microservice applications, along with frameworks originating from upstream open source communities that Red Hat actively participates in or leads. The list on this documentation page shows exactly what is included, and it will be updated for 2.1.2 in the coming weeks. Red Hat customers can also refer to the Spring Boot support page on the customer portal for additional detail.
Here's a quick rundown of the type of support included with this offering:
- Configuration support. Red Hat will help customers with Spring Boot configuration so it runs properly on OpenShift. This is no different from helping customers properly configure Red Hat products.
- Workaround support. As with any product, if a Spring Boot application is not working the way developers assumed it should, but in reality, it is actually working as defined, then in these cases, Red Hat will work with a customer to help find another means of achieving a solution.
- Product integration support. RHOAR’s Spring Boot support includes support for many Red Hat–led open source frameworks and platforms listed above. Some examples include OpenShift, Tomcat, Undertow, and Red Hat Single Sign-On/Keycloak. This list continues to grow over time as Red Hat continues to integrate Spring Boot with more of Red Hat’s product portfolio.
- New feature requests. Red Hat will entertain Red Hat product feature requests to optimize Red Hat product usage with Spring Boot applications. When it is reasonable to do so, Red Hat will work upstream within the Spring community to advocate on a customer’s behalf for requested Spring Boot functionality.
- Bug fixes. When bugs have been identified in Spring code, Red Hat will work on addressing those bugs. For non-critical issues, Red Hat will work in the upstream Spring community to address the issue. When an issue is addressed within the Spring community, the fix may be available in a future Spring update. For critical severity 1 issues that Red Hat can immediately address, Red Hat may provide the customer an immediate fix to get them up and running as quickly as possible while also working to address the issue in the Spring community. Red Hat wants to stay true to the Spring community distribution. For issues that cannot be addressed within the Spring community, Red Hat offers workaround support (see above).
Launching into OpenShift
The following figure shows launching Spring Boot applications into OpenShift:
Using developers.redhat.com/launch you can immediately create and deploy a Spring Boot application directly to Red Hat OpenShift Online or to your own local OpenShift cluster. This provides a hassle-free way of creating example applications, as well as an easy way to build and deploy those applications to OpenShift.
Sample applications are available to showcase how developers can use Spring Boot to build fundamental building blocks of cloud-native applications and services, such as creating secured RESTful APIs, implementing health checks, externalizing configuration, or integrating with the OpenShift Service Mesh based on the Istio project.
Test driving a sample app using Spring Boot
Spring Boot is a Java framework and, as such, it can be run using OpenJDK. Let's test drive one of the Spring Boot sample applications on OpenShift. (Here I am using the Red Hat Container Development Kit, but any OpenShift cluster will do.) The following is one set of commands you could use to pull the OpenJDK image to your local system for use with Spring Boot:
oc new-project spring-boot oc import-image java:8 --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --confirm
Then, the following commands could be used to build and deploy the Spring Boot application to Red Hat OpenShift:
oc new-app --name rest-example 'java:8~https://github.com/snowdrop/spring-boot-http-booster#2.1.2-5-redhat' oc expose svc/rest-example
You can watch the build take place:
oc logs -f bc/rest-example
Once the build completes, wait for the deployment to finish:
oc rollout status -w dc/rest-example
And then access the sample app's REST service:
curl http://$(oc get route rest-example -o jsonpath='{.spec.host}{"\n"}')/api/greeting?name=James
Red Hat customers using the Red Hat build of the OpenJDK distribution to run Spring Boot applications will be able to keep current with the latest updates and security advisories, know when and why containers are updated, and remain up to date on the latest available tagged OpenJDK image.
Documentation
The RHOAR team has been continuously adding to and improving the official documentation for developers creating Spring Boot applications. This includes updates in the Release Notes, Getting Started Guideand the Spring Boot Runtime Guide.
Developer interactive learning scenarios
These self-paced scenarios provide you with a pre-configured OpenShift instance, accessible from your browser without any downloads or configuration. Use them to experiment with building Spring Boot applications on OpenShift and building applications with various Spring frameworks and Red Hat technologies. The following figure shows interactive learning scenarios on learn.openshift.com:
Getting support for Spring Boot
Support for Spring Boot is available to Red Hat customers through a subscription to Red Hat OpenShift Application Runtimes. Contact your local Red Hat representative or Red Hat Sales for details on how you can enjoy world-class support offered from Red Hat and its worldwide partner network.
Moving forward, customers can expect support for Spring Boot and other RHOAR runtimes according to the Red Hat Product Update and Support Lifecycle.
What’s next for Spring Boot support?
The RHOAR Spring Boot team is continually taking feedback from customers and the wider community of open source developers, as well as tracking the upstream Spring Boot releases. The team is working to make updates to RHOAR based on that feedback, as well as considering support for additional modules from Red Hat and the very large Java community.
The people behind Red Hat's Spring Boot support
This offering was produced by Red Hat’s RHOAR product and engineering team and involved many hours of development, testing, documentation writing, testing some more, and working with the wider Red Hat community of customers, partners, and Spring developers to incorporate contributions, both big and small. We are glad you have chosen to use it and hope that it meets or exceeds your expectations!