Chapter 1. What is Spring Boot
Spring Boot lets you create stand-alone Spring-based applications. See Additional Resources for a list of documents about Spring Boot.
The Spring Boot runtime gives you the advantages and convenience of the OpenShift platform:
- rolling updates
- service discovery
- canary deployments
- ways to implement common microservice patterns: externalized configuration, health check, circuit breaker, and failover
1.1. Spring Boot tested and verified version
The Spring Boot runtime version 1.5.16.RELEASE is tested and verified to run with the Embedded Apache Tomcat Container on OpenShift. When used with Spring Boot, this embedded container, as well as other components such as the Java container image, are part of a Red Hat subscription.
For a complete list of Spring Boot components provided as part of this release, see the Release Notes.
1.2. Spring Boot features and frameworks summary
This guide covers the design of modern applications using Spring Boot. These concepts support developing Web or Websocket applications using either a HTTP connector or non-blocking HTTP connector. The applications can be packaged and deployed without modification or updated to use cloud native features on OpenShift.
The features in the table below are available as a collection of missions which run on OpenShift. Some features are native to Kubernetes, others are available from Spring Cloud Kubernetes. Features such as Actuator are available directly in Spring Boot.
Table 1.1. Features and Frameworks Summary
| Feature | Problem Addressed | Cloud Native | Framework |
|---|---|---|---|
| Circuit Breaker | Switches between services and continues to process incoming requests without interruption in case of service failure. | Yes | Spring Cloud Netflix - Hystrix |
| Health Check | Checks readiness and liveness of the service. Service restarts automatically if probing fails. | Yes | Spring Boot Actuator |
| Service Discovery | Discovers Service/Endpoint deployed on OpenShift and exposed behind a service or route using the service name matching a DNS entry. | Yes - using Kubernetes API | Spring Cloud Kubernetes - DiscoveryClient |
| Server Side Load Balancing | Handles load increases by deploying multiple service instances, and by transparently distributing the load across them. | Yes - Using internal Kubernetes Load Balancer | - |
| Client Side Load Balancing | Transparently handle load balancing on the client for better control and load distribution across multiple service instances. | No | Spring Cloud Kubernetes - Ribbon |
| Externalize Parameters | Makes the application independent of the environment where it runs. | Yes - Kubernetes ConfigMap or Secret | Spring Cloud Kubernetes - ConfigMap |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.