I am trying to finally choose between Spring Cloud Netflix, Kubernetes and Swarm for building our microservices environment. They are all very cool and do some choice is very hard. I'll describe a little which kind of problems I want to solve. I couldn't find any best way to design Api Gateway (not a simple load balancer) with Kubernetes or Swarm , that's why I want to use Zuul. But from other side Api Gateway must use service discovery which in case of Kubernetes or Swarm will be embedded inside the orchestra. With Kubernetes I can use it's spring cloud integration, but this way I will have server side discovery and client side discovery inside Kubernetes. Which is overkill I think. I am wondering does anyone have some experience with them and any suggestions about that. Thanks.
Spring Cloud Netflix provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms.
The Spring Cloud approach is trying to solve every MSA challenge inside the JVM, whereas the Kubernetes approach is trying to make the problem disappear for the developers by solving it at platform level. Spring Cloud is very powerful inside the JVM, and Kubernetes is powerful in managing those JVMs.
Spring has done a lot for the cloud-native trend. For example, Spring Cloud supports the distributed architecture and is a necessary framework for distributed and cloud Java applications. All cloud vendors have implemented products based on Spring Cloud, such as Spring Cloud Alibaba, AWS, Azure, and GCP.
While this project may be useful to you when building a cloud native application, it is also not a requirement in order to deploy a Spring Boot app on Kubernetes.
Kubernetes and Docker Swarm are container orchestration tools. Spring Cloud is a collection of tools to build microservices/streaming architectures. There is a bit of overlap, like service discovery, gateway or configuration services. But you could use Spring Cloud without containers and deploy the jars yourself without needing Kuberentes or Swarm.
So you'll have to choose between Kubernetes and Swarm for the orchestration of your containers, if you'll use containers.
Comparison: https://dzone.com/articles/deploying-microservices-spring-cloud-vs-kubernetes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With