NEW
Automatically locating services and their endpoints at runtime in distributed systems.
DESCRIPTION
Service discovery enables clients to find service instances dynamically, supporting scaling, resilience, and fault tolerance. Mechanisms include DNS-based discovery, registries like Consul/etcd, and Kubernetes Services with built-in DNS. It often integrates with health checks, load balancing, and service meshes for traffic management. Dynamic discovery replaces brittle static configuration.
ALTERNATIVE DEFINITIONS
Wikipedia
Service discovery is the process of automatically detecting devices and services offered by these devices on a computer network.
General network-centric definition including devices.
HashiCorp Consul
Service discovery provides a real-time directory of all running services and their locations, enabling dynamic routing and failover.
Emphasizes registry and dynamic routing functionality.
Kubernetes
A Service in Kubernetes gives a set of Pods a stable DNS name and IP address and can balance incoming traffic across them.
Highlights Kubernetes DNS-based discovery and load balancing.
RELATED TERMS
Service Registry DNS Consul Kubernetes Service Microservices Load Balancing Sidecar Service Mesh Health Check Configuration Management
COMPETING TERMS
Static Service Configuration
KNOWLEDGE AREAS
Software Engineering Infrastructure Platform & Tooling Data Engineering
TARGET AUDIENCE
DevOps Engineer Software Developer Cloud Architect Solution Architect IT Manager
EXTERNAL SOURCES
- Wikipedia - Service discovery
- HashiCorp Consul - Consul service discovery documentation
- etcd - Distributed key-value store for registries
- Istio - Service mesh capabilities including discovery
- Microsoft Learn - Azure architecture service discovery pattern
TOP QUESTIONS
Why is Service Discovery essential in microservices?
Microservices scale dynamically; discovery ensures clients find healthy instances without manual configuration, improving resilience.
Category: Relevancy
What are approaches to Service Discovery?
DNS-based discovery, service registries (Consul, etcd), and Kubernetes Services with cluster DNS are common.
Category: Example
What risks exist with poor Service Discovery design?
Stale entries, split-brain, and misrouted traffic can cause downtime. Without health checks, clients may hit failed instances.
Category: Risk
How to secure Service Discovery?
Use mTLS, ACLs, and authenticated service registration. Avoid unauthenticated registries exposed publicly.
Category: BestPractice
How does Service Discovery interact with service meshes?
Meshes leverage discovery for traffic routing, policy enforcement, and telemetry, often wrapping discovery behind sidecars.
Category: Application
What are common mistakes with Service Discovery?
Hardcoding endpoints, skipping health checks, and ignoring TTLs for registry entries lead to failures and outages.
Category: Mistakes
Where to start implementing Service Discovery?
Begin with Kubernetes Services and DNS if on k8s; otherwise, deploy a registry like Consul and integrate health checks.
Category: Requirements
How to test Service Discovery?
Simulate instance churn, network partitions, and failover. Verify client logic and registry consistency under load.
Category: Testing
What is a competing term for Service Discovery?
Static service configuration hardcodes endpoints, but it lacks scalability and resilience compared to dynamic discovery.
Category: Alternatives