Patrick McKenzie, while playing Bingo with Devops, documents his experience and insight while working for a Japanese mega-corporation. Familiar with the too well known bubble gum, duct tape, and praying methodology, Patrick explains that without engineering being an integral part of the organization you will not likely know much about the other side.
There are practical pointers for implementing three practices which greatly improves the experience for writing software for the web, per McKenzie.
Staging Servers
Staging = Production – Users. Anything that breaks on production breaks in the staging environment first. “For this reason, you want your staging server to be assimilar to the production environment as you can possibly make it. If the production environment processes credit cards, the staging environment processes credit cards. This means that if, e.g., your configuration for the payment gateway is borked, you’ll find out about that on the staging server prior to pushing it live to production and, whoopsie, not actually being able to get money from people.”
Version Control Workflows
After aligning the organization, everyone should use version control, and in order to gain the maximum benefits from this investment Patrick claims that you must “document your assumptions, document your processes, then apply them religiously. This will reduce conflicts on the team, reduce mistakes, and help you get more out of your tools.”
Tested, Repeatable Deployments
In this section, Patrick covers release deployments from a scripted perspective. Although with very valid points, I would have preferred to see a more modern approach with application release automation solutions, such as Nolio ASAP, ANT, or Serena Release Management . Reporting, transparency, sanity checks, restarting of services, integration with other systems are some of McKenzie’s areas of importance, all of which are native to solutions that specialize in application release automation.
I must add that this overview of Patrick’s detailed blog post does not do it justice, and if you want the real spiel and have a good 30 minutes reading time, then the full Monty is available at http://www.kalzumeus.com/2010/12/12/staging-servers-source-control-deploy-workflows-and-other-stuff-nobody-teaches-you/ .