Deployment automation
From Biowikifarm Metawiki
Revision as of 11:05, 14 January 2016 by Alvaro Ortiz-Troncoso (Talk | contribs) (Created page with "==The problem== Biowikifarm uses a big stack of software: webserver, database, parsoid service, cronjobs, update scripts, custom scripts, plugins from various sources etc. Kee...")
Contents
The problem
Biowikifarm uses a big stack of software: webserver, database, parsoid service, cronjobs, update scripts, custom scripts, plugins from various sources etc. Keeping track of all the pieces is becoming increasingly difficult. The problem manifests itself as:
- Difficulties to install a specific version of Mediawiki for a specific wiki.
- Incompatibilities between versions (e.g. Parsoid with Mediawiki versions).
- Configuration is difficult to maintain, as there is no overview of what is installed and where the corresponding files are.
- Seriously testing stuff before it's deployed is nearly impossible.
- Documenting changes is increasingly work-intensive.
- As configuration is done on the live server, downtime is necessary.
Inadequacy of the current practice
The current practice makes certain assumptions which amount to as many "anti-patterns" (Humble & Farley, 2010, chap. 1):
Manual deployment of wikis
- Extensive documentation is produced, which is supposed to document all the steps necessary for manual installation (this is impossible, as so much is tacit knowledge)
- Manual testing is required
- Upgrades often go wrong, are unpredictable and sometimes have to be reverted or patched
- Upgrades take several hours
Manual configuration of the server
- Stepping back from an unsuccessful server configuration is very difficult
- Modifying the production system is dangerous, specially for files not under version control.
References
Humble, J. and Farley, D., 2010. Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education. http://proquestcombo.safaribooksonline.com.libezproxy.open.ac.uk/book/software-engineering-and-development/software-testing/9780321670250