First off, are you sure you don't already have DNS?
- If your PC is connected to an Active Directory Domain Controller, then you already have local DNS.
- If you have a cheap Linux-based wireless router / firewall connecting your LAN to the Internet, then there is a fair chance it can provide local DNS for you.
So before we can help you more explicitly, we'll need to know what your network setup and client and server software looks like.
Second, I'm not sure about the "controls all servers" part, and the mapping of both project name and service name to a single hostname. What are you trying to accomplish?
A very common solution would be to:
- Give every machine a machine specific hostname for life, unrelated to its functions (ex. SRV001, ELVIS, HYDROGEN, etc).
- Create CNAMES mapping network level services to machines (ex. DB01 points to SRV014).
- Create application-specific configuration files that tell each application (project) which resources to use by their service names (ex. "Falcon" knows from its config file that it should use DB03 and DB04).
Regarding what naming convention to use ... well, any convention that makes sense to you and your colleagues. In other words it is quite domain-specific. Here is the most upvoted thread on this site regarding server names. Regarding service name, I would propose to let go of old habits, and use some ASCII characters, they are not an endangered species... So DATABASE_01 is neater to my eyes than DB01. Another good option is subdomains, i.e. "a.database.server.localdomain", "b.database.server.localdomain" and so forth.
Will I need "DNS" service? Or, can I do it like this...through hostnames?
You will not need DNS, it's simply a better solution which is far easier to manage when you have more than a handful computers. Actually, in the very first days of the Internet, DNS did not exists, the Internet ran entirely on host files. You should not use "." as a separator, it is reserved -- use dashes or possibly underscores, like "falcon-admin".