Search code examples
springkubernetesspring-cloudspring-cloud-netflix

If I have Kubernetes(or mesos) already, why do I need use Spring Cloud?


I'm a newbie on Spring Cloud, and I'm a little confused about it. Kubernetes and Spring Cloud are both micro-services framework. If I have Kubernetes(or mesos) already, why do I need use Spring Cloud? I notice that many projects use them both. What's the difference between Kubernetes and Spring Cloud? They both can provide service discovery, load balance and so on. I'm really confused.


Solution

  • Kubernetes and Spring Cloud address a lot of the same concerns with Microservices, but with different approaches and technologies. Redhat wrote a great article explaining this. Here the main takeaways:

    Spring Cloud has a rich set of well integrated Java libraries to address all runtime concerns as part of the application stack. As a result, the Microservices themselves have libraries and runtime agents to do client side service discovery, load balancing, configuration update, metrics tracking, etc. Patterns such as singleton clustered services, batch jobs are managed in the JVM too.

    Kubernetes is polyglot, doesn’t target only the Java platform, and addresses the distributed computing challenges in a generic for all languages way. It provides services for configuration management, service discovery, load balancing, tracing, metrics, singletons, scheduled jobs on the platform level, outside of the application stack. The application doesn’t need any library or agents for client side logic and it can be written in any language.

    In some areas both platforms rely on similar third party tools. For example the ELK and EFK stacks, tracing libraries, etc.

    Some libraries such as Hystrix, Spring Boot are useful equally well on both environments. There are areas where both platforms are complementary and can be combined together to create a more powerful solution (KubeFlix and Spring Cloud Kubernetes are such examples).

    Source: https://developers.redhat.com/blog/2016/12/09/spring-cloud-for-microservices-compared-to-kubernetes/

    To understand the differences and similarities in more detail I would recommend to the read the full article.