Mixed Manual and automated deployment
In this pattern, all of the deployment that has been automated is somehow deployed automatically, while the remaining steps are done by hand. It may be that an individual triggers the different stages of the deployment.
For example, an [RPM Package Manager] could be used to pull down artifacts built from a central repository: the operator chooses which artifacts to install or uninstall
Features
- A number of automated deployment tools can be used, where appropriate
- Manual stages can be used where necessary
Advantages
- The human operators are capable of adapting to unexpected situations.
- Lower cost than Pattern - Manual Deployment
- It may scale better than pure Pattern - Manual Deployment
- Flexible
- Allows 'physical' steps in the deployment (including setting BIOS options), that cannot be automated by software tools.
- It's good for experimentation.
Disadvantages
- Does not scale as well as fully automated deployment.
- Operators may perform manual stages in the wrong order. Documentation is essential.
- Gets expensive if the deployment is repeated frequently.
- Unless remote access to the system is possible, you need to go down to the datacentre.
For a single-system installation, mixed manual/automated deployment works, at least for those stages which are not repeated often. If the manual intervention is nothing more than starting an update and that update is persistent then all is well.
What is critical is that the manual deployment stage does not need to be repeated after every system reboot, otherwise the operators get paged every time the system is restarted, often at odd times of the day.
SmartFrog support
- The command line commands allow specific deployments to be rolled out. This lets us experiment with different configurations, configurations we can then set up the host to do automatically on startup.
- We have some components that can prompt a user
even remotely for information. Even so, we do not like using these as users are allowed to be absent. It's best limited to experiments, tests or demonstrations.
If you have a deployment process that requires human intervention, you cannot use it in large scale, agile, production environments. It's a shame, therefore, that so many server-side products assume Post-Installation Configuration File Editing to get configured.