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.

Spring Boot on OpenShift combines streamlined application development capabilities of Spring Boot with the infrastructure and container orchestration functionalities of the OpenShift, such as:

  • rolling updates
  • service discovery
  • canary deployments
  • ways to implement common microservice patterns: externalized configuration, health check, circuit breaker, and failover

1.1. 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 an 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 example applications that 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

FeatureProblem AddressedCloud NativeFramework

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

-

Externalize Parameters

Makes the application independent of the environment where it runs.

Yes - Kubernetes ConfigMap or Secret

Spring Cloud Kubernetes - ConfigMap