github.com/outbrain/consul@v1.4.5/website/source/intro/vs/skydns.html.md (about)

     1  ---
     2  layout: "intro"
     3  page_title: "Consul vs. SkyDNS"
     4  sidebar_current: "vs-other-skydns"
     5  description: |-
     6    SkyDNS is a tool designed to provide service discovery. It uses multiple central servers that are strongly-consistent and fault-tolerant. Nodes register services using an HTTP API, and queries can be made over HTTP or DNS to perform discovery.
     7  ---
     8  
     9  # Consul vs. SkyDNS
    10  
    11  SkyDNS is a tool designed to provide service discovery.
    12  It uses multiple central servers that are strongly-consistent and
    13  fault-tolerant. Nodes register services using an HTTP API, and
    14  queries can be made over HTTP or DNS to perform discovery.
    15  
    16  Consul is very similar but provides a superset of features. Consul
    17  also relies on multiple central servers to provide strong consistency
    18  and fault tolerance. Nodes can use an HTTP API or use an agent to
    19  register services, and queries are made over HTTP or DNS.
    20  
    21  However, the systems differ in many ways. Consul provides a much richer
    22  health checking framework with support for arbitrary checks and
    23  a highly scalable failure detection scheme. SkyDNS relies on naive
    24  heartbeating and TTLs, an approach which has known scalability issues.
    25  Additionally, the heartbeat only provides a limited liveness check
    26  versus the rich health checks that Consul performs.
    27  
    28  Multiple datacenters can be supported by using "regions" in SkyDNS;
    29  however, the data is managed and queried from a single cluster. If servers
    30  are split between datacenters, the replication protocol will suffer from
    31  very long commit times. If all the SkyDNS servers are in a central datacenter,
    32  then connectivity issues can cause entire datacenters to lose availability.
    33  Additionally, even without a connectivity issue, query performance will
    34  suffer as requests must always be performed in a remote datacenter.
    35  
    36  Consul supports multiple datacenters out of the box, and it purposely
    37  scopes the managed data to be per-datacenter. This means each datacenter
    38  runs an independent cluster of servers. Requests are forwarded to remote
    39  datacenters if necessary; requests for services within a datacenter
    40  never go over the WAN, and connectivity issues between datacenters do not
    41  affect availability within a datacenter. Additionally, the unavailability
    42  of one datacenter does not affect the discovery of services
    43  in any other datacenter.