one-step deployment has been a goal of ours for a long time. Our determination is renewed by the workshop last week. Cal shared with us a screenshot of the Flickr deployment interface which involves two buttons on an HTML page that deploy the current codebase to staging and/or production.
But, as I posed the question in my previous article, we have a bit of distance to cover.
- put more and more emphasis on the quality of code checked into the repository. We get lots of mileage out of code reviews and unit tests, but we need developers to seek out other developers, our support team, and the rest of the company to test features and/or changes that are particularly important (arguably this is easier if deployment is easier).
- continue to move our development process to be more agile to handle the evolution of requirements, needs identified by progress, and necessary optimization shown by customer use.
- finally, make deployment a one-step process. Make the web servers less tied to a given backend. Ensure the process works seamlessly and quickly (and atomically).
Database changes don't fit well with the one-step deployment. These still need to be made manually, but still get tracked in source-control.
Every day we move further in this direction.
[tags]agile development, deployment, quality assurance[/tags]