Already couple of ppl answered on how to publsih. But looks like you have asked many questions.
How to publish --> answered by couple of ppl.
What is required for publish --> you need a author server and publish server. Publish agent is configured in author server which will replicate to publish servier. Also additionally you need to create a flush agent which will clear the cache from IIS server. Flush agent can be created in author and publish.
How to host AEM site on IIS server --> refer the steps in the link https://docs.adobe.com/content/help/en/experience-manager-dispatcher/using/getting-started/dispatche... . Main goals for installing AEM site is as below
1) Most of the trafffic should be served from the cache. (check for how to control stat level in the above link)
2) IIS server should have origin as the AEM publish server.
3) deny all the patters which are not required for end user - For Security
4) ensure that invalidation happens from publish to IIS server. You need to whitelist publish IP for this. (this is where i struggled when i condofired in IIS for the first time)
5) If possible create rewrite rules for shorten and long url's