Мы использовали связку teamcity/ansible/cloudformation, сейчас это работает для QA окружения - развертывания определенной ветки (branches) на ресурсах aws.
Кратко алгоритм такой:
1) Разработчик закончил определенную задачу (feature/example)
2) Заходит в teamcity, запускает сборку (нажимает на кнопку)
3) Вводит необходимые данные: выбирает свою ветку (branch), выбирает опции, нужен ему только frontend/backend/cms (роли в ansible) или и то и другое, нужен ли ему отдельный cdn (cloudfront) и т. п.
4) Teamcity собирает исходники (composer, npm, grunt), ansible развертывает ec2 инстанс и требуемые ресурсы (r53 доменное имя, cloudfront distribution), конфигурирует его, закачиват собраные исходники.
5) Высылает письмо с выходными данными - доменным именем, ip адресом и т.п.
Если Вам интересно, пишите, могу помочь, с чего начать.
Сразу все поднять не всегда получается, мы делали это руками какое то время, что бы автоматизировать все случаи.