As we've already mentioned, we have a number of very good open-source tools that can help us both meet our expectations of microservices and, most importantly, handle the new challenges that come with them:
- Spring Boot
- Spring Cloud/Netflix OSS
- Docker
- Kubernetes
- Istio (a service mesh)
The following table maps the design patterns we will need to handle these challenges, along with the corresponding open-source tool that implements the design pattern:
Design Pattern | Spring Boot | Spring Cloud | Kubernetes | Istio |
Service discovery |
Netflix Eureka and Netflix Ribbon | Kubernetes kube-proxy and service resources | ||
Edge server |
Spring Cloud and Spring Security OAuth | Kubernetes Ingress controller | Istio ingress gateway | |
Reactive microservices |
Spring Reactor and Spring WebFlux | |||
Central configuration |
Spring Config Server | Kubernetes ConfigMaps... |