Serf
Serf

9
13
+ 1
0
SkyDNS
SkyDNS

7
10
+ 1
1
Add tool

Serf vs SkyDNS: What are the differences?

Developers describe Serf as "Service orchestration and management tool". Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant. Serf runs on every major platform: Linux, Mac OS X, and Windows. It is extremely lightweight: it uses 5 to 10 MB of resident memory and primarily communicates using infrequent UDP messages. On the other hand, SkyDNS is detailed as "Distributed service for announcement and discovery of services". SkyDNS is a distributed service for announcement and discovery of services. It leverages Raft for high-availability and consensus, and utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights (more info here: http://blog.gopheracademy.com/skydns).

Serf and SkyDNS belong to "Open Source Service Discovery" category of the tech stack.

Some of the features offered by Serf are:

  • Membership: Serf maintains cluster membership lists and is able to execute custom handler scripts when that membership changes. For example, Serf can maintain the list of web servers for a load balancer and notify that load balancer whenever a node comes online or goes offline.
  • Failure detection and recovery: Serf automatically detects failed nodes within seconds, notifies the rest of the cluster, and executes handler scripts allowing you to handle these events. Serf will attempt to recover failed nodes by reconnecting to them periodically.
  • Custom event propagation: Serf can broadcast custom events and queries to the cluster. These can be used to trigger deploys, propagate configuration, etc. Events are simply fire-and-forget broadcast, and Serf makes a best effort to deliver messages in the face of offline nodes or network partitions. Queries provide a simple realtime request/response mechanism.

On the other hand, SkyDNS provides the following key features:

  • You announce your service by submitting JSON over HTTP to SkyDNS with information about your service. This information will then be available for queries either via DNS or HTTP.
  • SkyDNS requires that services submit an HTTP request to update their TTL within the TTL they last supplied. If the service fails to do so within this timeframe SkyDNS will expire the service automatically. This will allow for nodes to fail and DNS to reflect this quickly.
  • You can find services by querying SkyDNS via any DNS client or utility. It uses a known domain syntax with wildcards to find matching services.

Serf and SkyDNS are both open source tools. It seems that Serf with 4.7K GitHub stars and 467 forks on GitHub has more adoption than SkyDNS with 1.97K GitHub stars and 301 GitHub forks.

What is Serf?

Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant. Serf runs on every major platform: Linux, Mac OS X, and Windows. It is extremely lightweight: it uses 5 to 10 MB of resident memory and primarily communicates using infrequent UDP messages.

What is SkyDNS?

SkyDNS is a distributed service for announcement and discovery of services. It leverages Raft for high-availability and consensus, and utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights (more info here: http://blog.gopheracademy.com/skydns).

Want advice about which of these to choose?Ask the StackShare community!

Why do developers choose Serf?
Why do developers choose SkyDNS?
    Be the first to leave a pro
    What are the cons of using Serf?
    What are the cons of using SkyDNS?
      Be the first to leave a con
        Be the first to leave a con
        What companies use Serf?
        What companies use SkyDNS?

        Sign up to get full access to all the companiesMake informed product decisions

        What tools integrate with Serf?
        What tools integrate with SkyDNS?
          No integrations found
            No integrations found
            What are some alternatives to Serf and SkyDNS?
            Consul
            Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable.
            Zookeeper
            A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.
            etcd
            etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles master elections during network partitions and will tolerate machine failure, including the master.
            Eureka
            Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
            Keepalived
            The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures.
            See all alternatives
            Decisions about Serf and SkyDNS
            No stack decisions found
            Interest over time
            Reviews of Serf and SkyDNS
            No reviews found
            How developers use Serf and SkyDNS
            No items found
            How much does Serf cost?
            How much does SkyDNS cost?
            Pricing unavailable
            Pricing unavailable
            News about Serf
            More news
            News about SkyDNS
            More news