Spring Cloud® Services
What Is Spring Cloud Services?
The rise in popularity of cloud-native architectures and the shift to implementing applications as series of focused microservices developed around bounded contexts has led to the discovery and rediscovery of patterns useful in designing distributed systems. Techniques such as service discovery, centralized configuration accessed through an application’s deployment environment, and graceful degradation of behavior through circuit breakers are common solutions for this style of architecture and can be built into tools for applying these techniques across applications.
Netflix, a pioneer in the microservices space, has built many such tools. Eureka is a service registry, which registers all of a microservice’s instances and supplies each microservice with instance information to use in discovering others. Hystrix, the Hystrix Dashboard, and Turbine provide fault tolerance using circuit breakers and enable monitoring of circuits across microservices and instances. These components have been battle-tested in a production environment facing some of the most demanding traffic requirements in the world, and are available as open-source software.
The Spring Cloud family of projects are based on Spring Boot and provide tools including Netflix’s Eureka and Hystrix as libraries easily consumable by Spring applications, following idiomatic Spring conventions. Spring Cloud Netflix makes the use of Eureka and Hystrix as simple as including starters dependencies in an application and adding an annotation to a configuration class. Spring Cloud Config includes a configuration server and client library that enable Spring applications to consume centralized configuration as series of property sources.
Spring Cloud Services for Pivotal Cloud Foundry (PCF) packages server-side components of Spring Cloud projects, including Spring Cloud Netflix and Spring Cloud Config, and makes them available as services in the PCF Marketplace. This frees you from having to implement and maintain your own managed services in order to use the included projects. You can create a Config Server, Service Registry, or Circuit Breaker Dashboard service instance on-demand, bind to it and consume its functionality, and return to focusing on the value added by your own microservices.
Spring Cloud Services currently provides the following services.
|Service Type||Current Version|
|Circuit Breaker Dashboard||10|
See below for the Spring Cloud Services releases that include each service version.
|Service Version||Tile Version|
|Release Date||2 July 2018|
|Software Component Version||Spring Cloud Edgware.SR3|
|Compatible MySQL for PCF v1 Version||1.10.x|
|Compatible MySQL for PCF v2 Version||2.0.x–2.3.x|
|Compatible RabbitMQ for PCF Version||1.10.0–1.13.x|
|Compatible Ops Manager Version(s)||2.0.x–2.2.x, 1.12.x|
|Compatible Elastic Runtime / Pivotal Application Service Version(s)||2.0.x–2.2.x, 1.12.x|
|Supported IaaS||All supported by PCF|
Spring Cloud Services for PCF has the following requirements:
- Java Cloud Foundry buildpack version 4.5 or later (if the default Java buildpack is not at version 4.5 or later, you must specify an alternate buildpack that is at version 4.5 or later when installing Spring Cloud Services; see step 4 of the Installation topic)
- A MySQL service (Pivotal recommends MySQL for PCF v2 for use with Spring Cloud Services)
- RabbitMQ for PCF (for information about isolating the RabbitMQ cluster used for Spring Cloud Services, see Running SCS on a Dedicated RabbitMQ Cluster in the RabbitMQ for PCF documentation)
- If you enable the RabbitMQ® for PCF product’s SSL support by providing it with SSL keys and certificates, you must enable the RabbitMQ for PCF product’s TLS 1.0 support
- A single Pivotal Application Service (PAS) or Elastic Runtime SSL certificate (see the Pivotal Cloud Foundry documentation for information about configuring the SSL certificate) that includes the following domains, where
SYS_DOMAIN.TLDis your PCF installation’s system domain and
APP_DOMAIN.TLDis your PCF installation’s application domain: