Consul is an open source project that enables high automation of infrastructure:
Automatic registration of new hosts
Whether physical or virtual, hosts running Consul Agent will be registered into the hosts database, together with their key-value metadata, such as datacenter, environment and any custom key-value properties.
Dynamic host information
The host database is dynamic and provides information about which hosts and services are currently available.
High availability of services
The Consul agent installed on each host provides DNS service to the running applications on that host to allow access to running services that were registered in the Consul Server. For example, configuring the application to use MySQL server host mysql.someservice.consul will resolve to IP list of all active MySQL servers. In case one of the MySQL servers is down, it will be removed from the IP list.
It is also possible to get list of mysql servers that are local to the datacenter.
Consul Agent running on hosts can run local health checks and send them to the Consul Server.
In case Consul Server detects that it cannot ping the Consul Agent, it assumes that the node is node is not available (due to network, OS or hardware issue) and will mark it is failed.
Hosts that are marked as failed are automatically removed from the db if they are more than 72 hours in that state.
Consul High Availability
Consul can have multiple Consul Servers, distributed across datacenters. A master Consul Server will be automatically elected and updates will be sent to the other Servers.