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

     1  ---
     2  layout: "intro"
     3  page_title: "Consul vs. Chef, Puppet, etc."
     4  sidebar_current: "vs-other-chef"
     5  description: |-
     6    It is not uncommon to find people using Chef, Puppet, and other configuration management tools to build service discovery mechanisms. This is usually done by querying global state to construct configuration files on each node during a periodic convergence run.
     7  ---
     8  
     9  # Consul vs. Chef, Puppet, etc.
    10  
    11  It is not uncommon to find people using Chef, Puppet, and other configuration
    12  management tools to build service discovery mechanisms. This is usually
    13  done by querying global state to construct configuration files on each
    14  node during a periodic convergence run.
    15  
    16  Unfortunately, this approach has
    17  a number of pitfalls. The configuration information is static
    18  and cannot update any more frequently than convergence runs. Generally this
    19  is on the interval of many minutes or hours. Additionally, there is no
    20  mechanism to incorporate the system state in the configuration: nodes which
    21  are unhealthy may receive traffic exacerbating issues further. Using this
    22  approach also makes supporting multiple datacenters challenging as a central
    23  group of servers must manage all datacenters.
    24  
    25  Consul is designed specifically as a service discovery tool. As such,
    26  it is much more dynamic and responsive to the state of the cluster. Nodes
    27  can register and deregister the services they provide, enabling dependent
    28  applications and services to rapidly discover all providers. By using the
    29  integrated health checking, Consul can route traffic away from unhealthy
    30  nodes, allowing systems and services to gracefully recover. Static configuration
    31  that may be provided by configuration management tools can be moved into the
    32  dynamic key/value store. This allows application configuration to be updated
    33  without a slow convergence run. Lastly, because each datacenter runs independently,
    34  supporting multiple datacenters is no different than a single datacenter.
    35  
    36  That said, Consul is not a replacement for configuration management tools.
    37  These tools are still critical to set up applications, including Consul itself.
    38  Static provisioning is best managed by existing tools while dynamic state and
    39  discovery is better managed by Consul. The separation of configuration management
    40  and cluster management also has a number of advantageous side effects: Chef recipes
    41  and Puppet manifests become simpler without global state, periodic runs are no longer
    42  required for service or configuration changes, and the infrastructure can become
    43  immutable since config management runs require no global state.