A long, long time ago we used only one tool for syncing development instances with production environments - FTP. Over the years, we at Netgen improved slowly but are still not where we want to be. The main problem is that we have many projects and clients with different infrastructure in type and size. It is very hard to consolidate the process in that situation. Here is what we have managed so far using Vagrant, Ansible, and PhpStorm.