Upgrading Asterisk & Deploying in HA

Currently asterisk 13 is deployed in production and would like to upgrade it to version 16. How can it be upgraded. What are the best practices for upgradation. Moreover, how can asterisk can be deployed in high availability?

The Asterisk project provides an UPGRADE.txt file[1] with notes of things to be aware of when upgrading. For many individuals just installing the new version of Asterisk and using their existing configuration either works, or works with minimal changes. As for high availability Asterisk has nothing built in for such a thing and the definition of high availability can also be different between people.

[1] https://github.com/asterisk/asterisk/blob/16/UPGRADE.txt