I'm currently quite troubled by the way of deployment my team is adopting... It's very old-fashioned and I know it doesn't work very well. But I don't exactly know how to change it, so please give some suggestions about it...
Here is our current setup:
- 2 webservers
- 1 database server
- 1 test server
Current deployment adaptation
- We develop and work on the test server, every changes is uploaded manually to the test server.
- When a change or feature is complete, we then commit the changes to SVN repository.
- After committing the changes, we then upload our changes to the first webserver, where there will be a cronjob running every minute to sync the files between the servers.
Something very annoying is, whenever we upload a file just as the syncing job starts, the file that is sync-ed will appear corrupted, since it is only half-uploaded. Another thing is whenever there is a deployment fault, it will be extremely difficult to revert. These are basically the problem I'm facing, what should I do?
In addition, since there are files on the 1st webserver which needs to be sync-ed to the other servers anytime, so the cronjob was there for the reason.
P/S: I'm sorry I forgot to mention that, the SVN server is hosted. We don't have too much control over it, but I believe I can edit hooks...