Building distributed systems — whether we call them SOA or microservices - is not easy. Open source communities like Spring, Netflix OSS, and Kubernetes bring decades of experience building these systems, but the question always begs to be asked, “Do we implement these patterns in the application layer or in the infrastructure layer?”

This is a Java developer-oriented presentation showing developers how to approach building microservices in the real world (influenced by experiences at large enterprise customers) using application-level components like Spring, Spring Cloud, and Netflix OSS and running them on infrastructure components like Docker and Kubernetes. We’ll cover some gotchas, patterns, and overall best practices for developing with this ecosystem.

Specifically, we’ll cover:

Service discovery in a container, clustered environment

Client side? Server side discovery? When to use which?

Distributed configuration techniques in a container environment with Kubernetes and Archaius