How does a SQL Server instance alias work?
1) You don't need to define the alias on the SQL Server itself, unless you need a loopback for some reason.  

2) The client doing the connecting does need the alias defined on it.  Make sure you define it in both the 32bit and 64bit version of cliconfg to make sure you don't miss anything there.  


C:\Windows\system32\cliconfg.exe 
c:\WINDOWS\SysWOW64\cliconfg.exe


3) The Alias defined in cliconfg on the client is different from DNS in that you can specify a port instead of just a redirect.  You could combine the two for maximum flexibility.  So you could have cliconfg on the client using a DNS record to point to the correct host, but cliconfg specify a port number.  Think of it as a etc\hosts file that only database drivers talk to.  Effectively:


Application - Connection string to My_SQL_Alias
CLICONFG - My_SQL_Alias == MySQLHost:1564
DNS - MySQLHost == MyRealSQLHostName
FinalConnection == MyRealSQLHostName:1564


4) If part of a domain, you should be able to specify these things through group policy.  

WHY USE IT??

I've not found many use cases in my career for setting these up.  Really, if you need to hide the fact that you are connecting to an instance rather than the default instance then that's the only thing that really springs to mind.  But the challenges with spreading this information out prohibits a lot of these use cases.