Why using Eureka?

6/1/2018

I was setting up microservices based on Netflix Eureka and experimenting on top of spring-cloud and after weeks of research and development the question rose!

Why do I need the Eureka and spring-cloud?

Why not developing your independent containers and deploy them on Kubernetes as pods and maintain everything from there?

You can support load balancing, service registery, monitoring, containerization, etc. from Kubernetes too.

Here are some points that I can think of:

  • developer friendly
  • lower server costs for the complete stack
  • less OPS dependent
  • more resources on developer communities and tutorials
  • gradual learning curve
-- Mr. Crowley
kubernetes
microservices
netflix-eureka
spring-cloud

2 Answers

6/4/2018

I conclude and the top highlights for the reason why using Eureka and/or Kubernetes can be listed as:

  • Java only
  • developer friendly
  • lower server costs for the complete stack
  • less OPS dependent
  • more resources on developer communities and tutorials
  • gradual learning curve

So,

If you need some of your microservices in an other language or you can rely on your developers knowledge on Kubernetes are not afraid to spend a bit more time and money investing in your tech stack to have a wider and less dependent system then Kubernetes is the way to go.

On the other hand

If you need a fast development well integrated with spring-boot stack with easy to use Java annotations without large involvement of DevOps then and less resource to train your developers then go for Eureka and spring-cloud stack.

for more details and comparison charts and features list please refer to this article.

-- Mr. Crowley
Source: StackOverflow

6/4/2018

On Kubernetes you don't need to, you could use those features from the Kubernetes platform.

If you want to integrate closer with spring cloud you can have a look at: https://github.com/spring-cloud-incubator/spring-cloud-kubernetes

Most of the requested features can be provided by Kubernetes Services. These get exposed as environment variables to the pods or you could use Kube DNS to find the needed services.

-- Jeff
Source: StackOverflow