Spring Cloud Overview

In Chapter 1, Introduction to Microservices, I mentioned the cloud-native development style and also that Spring Cloud helps you in the easy adoption of the best practices associated with this concept. The most commonly used best practices have been collected together in an interesting initiative called The Twelve-Factor App. As you might read on their website (https://12factor.net/), this is a methodology for building Software as a Service (SaaS) modern applications, which must be scalable, easily deployable on cloud platforms, and delivered in the continuous deployment process. It is worth being familiar with these principles, especially if you are a developer who builds applications running as a service. Spring Boot and Spring Cloud provide features and components that make your application compliant with Twelve-Factor rules. We can distinguish some typical features that the most modern distributed systems usually use. Every opinionated framework should provide them and there is no difference for Spring Cloud. Those features are as follows:

  • Distributed/versioned configuration
  • Service registration and discovery
  • Routing
  • Service-to-service calls
  • Load balancing
  • Circuit breakers
  • Distributed messaging