Smart deployment workflow for the budget-conscious
THE PROBLEM: small budgets preclude automated testing and fancy continuous integration (CI) deployment workflows
While making a commit and trusting our CI workflow to take care of testing and deployment is "the dream" – many of us maintain multiple sites, each tied to a budget, that cannot support the development of robust automated testing and deployment infrastructures.
We need a deployment workflow that is both...
- simple – so maintentence tasks can be transfered easily among team members...and...
- clear – so we can deploy with confidence
A SOLUTION: a scripted, code driven deployment workflow that clearly shows the changes being pushed to the production server
In this talk I'll walk you through a workflow that can have a site up and running locally by a "day 1" developer and how that same "day 1" developer would then deploy changes to a production environment.
Topics covered will include:
- Using a drush make file to build a site
- Automated scripting of a site build, installation, and deployment
- Storing configuration and generating dummy content so we don't need to pull a production database
- Creating checkpoints to ensure the changes being deployed are cleary identified
- Deploying to various hosting enviornments (Acquia, Pantheon, generic)
- Adding automated testing and/or CI to the workflow
This workflow is designed to easily accomodate the addition of CI and/or automated testing, but does not presume it.
In other words, the approach is designed to be a stepping stone between having little or no deployment workflow (i.e. developing on a production server) and the full-blown CI setups that many of us cannot afford.
More specifically, the workflow is installation profile driven (a.k.a. code driven), which means it requires the ability to codify configuration – be it via Features (D7), Configuration Management (D8), or some other tool.
I'm excited to share ThinkShout's experience using this workflow and have some healthy "compare and contrast" Q & A to round out the talk!