One thing that I've learnt in my short dev career is that there are best practices (like TDD) and then there are actual practices that occur under pressure, or through budgetary/time constraints.

I'm working in a small PHP dev team on a project using Zend framework. The project has the potential to demand a lot of scalability, and so we are trying to establish a good development environment to promote ease of development long term. Architectural patterns/practices aside, I'm looking at trying to automate deployment, checking code quality through svn hooks, possibly even setting up a CI environment.

So I'm interested in hearing people's experience of deployment practices. I've checked other examples as they pertain to other languages - but I'm ideally looking to hear from people who have worked in a PHP/Zend environment

To make the question less vague: What are people's experiences of using deployment systems like phpUnderControl and rSync?

closed as too broad by gnat, user40980, GlenH7, ChrisF Mar 15 '14 at 18:56

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    rsync is great for ensuring that files in a given folder on computer A are identical to files in another given folder on computer B. – user1249 Aug 6 '11 at 9:48

If you are setting up the development processes for a team, you need to make the official way to do it so easy that no one would even conceive of doing it any other way.

When the pressure is on, automated builds that run the unit tests, create the release disks, set up the QA environments just make life easier for everyone, and make it that much harder for a bug to slip through, and for bugs to appear late in the product development.

  • I agree, and looking back at my answer, I didn't even mention a separate build server. – Michael Shaw Nov 30 '10 at 20:11

Basically it needs to be easy (if everything is acceptable) to deploy. This usually means, that after a checkin the system rebuilds automatically. If ok, the user can at a single click cause the test server to update to the new version.

You should be able to roll-back as easy.

The easier to use you can keep it, the happier people will be.

If at all possible set up a CI. Hudson Jenkins is nice, but there are plenty others. You WILL appreciate it quickly.

Not the answer you're looking for? Browse other questions tagged or ask your own question.