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.