mirror of https://github.com/status-im/consul.git
28 lines
1.2 KiB
Markdown
28 lines
1.2 KiB
Markdown
---
|
|
layout: "intro"
|
|
page_title: "Serf vs. Fabric"
|
|
sidebar_current: "vs-other-fabric"
|
|
---
|
|
|
|
# Serf vs. Fabric
|
|
|
|
Fabric is a widely used tool for system administration over SSH. Broadly,
|
|
it is used to SSH into a group of nodes and execute commands. Both Fabric
|
|
and Serf can be used for service management in different ways.
|
|
|
|
While Fabric
|
|
sends commands from a single box, Serf instead rapidly broadcasts a message
|
|
to the entire cluster in a distributed fashion. Fabric has a number of advantages
|
|
in that it can collect the output of commands and stop execution if an
|
|
error is encountered. Serf is unable to do these things since it has no single
|
|
destination to send logs to, nor does it have any control flow. However,
|
|
Fabric must be provided with a list of nodes to contact, whereas membership
|
|
is built directly into Serf. Additionally, Serf is able to propagate a message
|
|
within seconds to an entire cluster, allowing for much higher parallelism and
|
|
scalability.
|
|
|
|
Fabric is much more capable than Serf at system administration, but it is
|
|
limited by its execution speed and lack of node discovery. Combined together,
|
|
Fabric can query Serf for nodes and make use of message broadcasts where
|
|
appropriate, using direct SSH exection when and where output is needed.
|