Service Discovery 101: The Phonebook for Distributed Systems