2. Agenda
What is Serf
Installation
Get Used To
Use Cases
Demo
Limitations
3. Target Audience
Having some knowledge of cluster environment
Managed Clusters environment
Eager to Learn SERF
4. SERF (By Hashicorp)
OPEN SOURCE
Decentralized
Fault-tolerant
Highly Available
Uses Gossip Protocol to communicate with nodes
Extremely Light Weight (5-10 MB Memory Footprint)
Available for Linux, Mac OS X, and Windows
5. SERF USED FOR
Cluster Membership Management
Failure Detection and Recovery
Event Propagation
Orchestration
6. Installation
Download SERF from https://www.serfdom.io/downloads.html
Unzip and put binary in /usr/local/bin or /usr/bin folder (in LINUX)
7. SERF AGENT
Core process
Maintains membership information
Propagates events
Invokes event handlers
Detects failures
Run on every node that is part of cluster
11. Custom Event Propagation
Dispatches a custom user event
Nodes in the cluster listen custom events
Reacts to them
Execute Event Handlers
Doesn’t send response back to originator
14. SERVICE ORCHESTRATION
Dispatches a query
Nodes in the cluster listen query
Reacts to them
Execute Event Handlers
Send response back
Gathering Responses at originator
15. USE CASES
Webservers and load balancers
Memcached and Redis clusters
Triggering deployments
Updating DNS records
Simple Observability
A Building Block for Service Discovery
17. Limitations
Under heavy development
Events are eventually consistent
Payload size is limited
Queries may not be delivered to all nodes
Responses and acknowledgements may not be receive by query originator