title: What is service discovery, and why do you need it?
body: <p>As far as I can tell, "service discovery" means a way for a client to find out about a server (or cluster of servers) that it wants to connect to.</p>
  
  <p>I've built web applications that communicate with other back-end processes using protocols like HTTP and AMQP. In those, each client has a config file that contains a host name or whatever information it needs to connect to the server, which gets set at deployment time using a configuration tool like Ansible. That's simple and seems to work pretty well.</p>
  
  <p>Is service discovery an alternative to just putting server information in a client's config file? If so, why is it better? If not, what problem does it solve?</p>