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...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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