По пунктам:
Какие варианты разворачивания здесь будут?
Применяются средства администрирования и конфигурирования, такие как
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, но это медленно, большой лаг, и, неэффективно.