What practice should one use while deploying code automatically on the production server? What is the procedure that I should follow and what should I include on the check list?
In my opinion, composer deployment is the best option.
It allows you to upgrade Magento, third party extensions and your own codebase with just one command.
Alternatively, you could also consider Docker deployment - although I haven't used it myself yet.