Как развернуть несколько отказоустойчивых серверов?
Нанять админа?
Для настройки понадобятся слова вроде chef, ansible. Для файлов rsync.
Если нравится хипстерство, то может быть еще mesos, docker.
По пунктам:Какие варианты разворачивания здесь будут?
Применяются средства администрирования и конфигурирования, такие как puppet, chif, ansible. Т.е. один раз создаем сценарий на выбранном инструменте, а потом его "проигрываем" на нужный сервер.Плюс нужна синхронизация баз данных PostgreSQL
Я бы с мастер-мастер не стал делать, настоятельно не стал бы! Лучше запусить несколько баз данных и шардировать данные на них. Про шардинг почитать например здесь - ruhighload.com/index.php/2009/05/06/%D1%88%D0%B0%D...
А еще лучше некоторые (если не все данные) хранить в базах данных ключ/значение типа memcache/ redis,  или в объектных типа hadoop/mongodb.Есть ли возможность синхронизировать все файлы между серверами?
Лучше всего сделать распределенную файловую систему типа glusterfs, GPFS, cephfs, lustre. А самый простой - просто использовать rsync, но это медленно, большой лаг, и, неэффективно.