Проверьте mmm для автоматизированной обработки отказа. Обязательно настройте эти два сервера как ведущие устройства, таким образом, у Вас есть двунаправленная репликация. Также при использовании автоинкремента удостоверьтесь, что Вы настраиваете его так, чтобы у Вас не было столкновений для записей (см. эту статью для деталей).
Наконец, используйте Maatkit, чтобы гарантировать, что нет никаких несоответствий между серверами.
Я думаю, что можно сделать это более легко путем установки шагов в Гудзоне, чтобы запустить тесты и затем продвинуть, если тесты возвращают ненулевой выход при отказе. Это работает, потому что я думаю, что Гудзон прекратит выполнять цепочку шагов сборки, как только существует отказ (ненулевой статус выхода).
Посмотрите здесь для объяснения мерзавца.
BTW, Вы храните развертываемые артефакты в мерзавце, или Вы восстанавливаете свое приложение перед развертыванием? Иначе позвольте своему первому заданию продвинуть артефакты в репозиторий (может отличаться, чем тот для исходного кода, у нас есть обозначенное пространство в файловой системе), и вторая работа вытягивает его из репозитория и развертывает его.