Spring Cloud aims to provide solutions to some commonly encountered patterns when building systems on the Cloud:
- Configuration management: As we discussed in the Twelve-Factor App section, managing configuration is an important part of developing Cloud-Native applications. Spring Cloud provides a centralized configuration management solution for microservices called Spring Cloud Config.
- Service discovery: Service discovery promotes loose coupling between services. Spring Cloud provides integration with popular service discovery options, such as Eureka, ZooKeeper, and Consul.
- Circuit breakers: Cloud-Native applications must be fault tolerant. They should be able to handle the failure of backing services gracefully. Circuit breakers play a key role in providing the default minimum service in case of failures. Spring Cloud provides integration with the Netflix Hystrix fault tolerance library.
- API Gateway: An API Gateway provides centralized aggregation, routing, and caching services. Spring Cloud provides integration with the API Gateway library Netflix Zuul.