ну Вы же понимаете, что универсального способа быть не может - все зависит от размеров проекта
главный вопрос, на который ищется ответ при деплое - "все ли работает", откуда два шага 1) обновление кода 2) тестирование
с (1) проблем нет: у нас Ansible, но, думаю, хоть fabric, хоть админ с командной строкой (хотя надо избегать такого из-за непередаваемости опыта) код обновит
а вот с (2) ... все проблемы: например, на тестах заглушка базы, и все отрабатывает, а на проде какой-нибудь новый автоинкремент/sequence и привет...
поэтому такой распределенный зоопарк продакшинов и тестировочных машин можно поддерживать только автоматически + сохраняя в репе те же конфиги Энсибла
плюс основная боль - на какие участки писать тесты, на "все где хочется" никогда не будет хватать времени
По-нормальному (по-взрослому), при выкатке на прод нужно использовать CI only, но даже там например, при распространенности JIRA, мы используем не Bamboo (Бамбу тоже, но эпизодически), а Jenkins - с ним банально больше умеющих тестировщиков, т.е. не так просто люди осваивают новые инструменты
Все это окупается, когда проект большой, слабой зависимостью от кадров, отсутствием необходимости вспоминать "как было" и т.д., но стоит это время, много времени, много оплачиваемого времени
Сократить время можно только знанием о неизменности участков кода, что, ессно, для больших проектов очень сложно.
Поэтому единственное, что полезное для Вас из этого топика - рекомендация использовать Ansible
что касается Докера - то, ессно, никаких Докеров на Проде,
однако, если, возможно, в вашей практике образы идут как способ быстрого восстановления и проекты небольшие - то почему бы и нет