A Light-weight DevOps Approach to Islandora

10

Click here to load reader

description

Presented at Open Repositories 2013, Prince Edward Isle, Canada

Transcript of A Light-weight DevOps Approach to Islandora

Page 1: A Light-weight DevOps Approach to Islandora

A LIGHT-WEIGHT DEVOPS APPROACH TO ISLANDORA

Twitter: @DataG

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Other rights are available; please contact the author for more information.

Page 2: A Light-weight DevOps Approach to Islandora

Technical Drivers

• Self-contained directory

• Easily replicate developer, staging and production environments

• Track and contribute to upstream development

• Put configuration under version control

• Support multi-site setup

Page 3: A Light-weight DevOps Approach to Islandora

One-directory Setup

• Extensive use of Git Submodules for Drupal, Islandora, etc.

• Relative symbolic links within the directory

• Configuration files generated by scripts

Page 4: A Light-weight DevOps Approach to Islandora

Inside the Box (Source)

• Fedora Commons

• Drupal

• Islandora

• GSearch configuration

• Site-specific configuration, modules, themes

Page 5: A Light-weight DevOps Approach to Islandora

Inside the Box (Binaries)

• Tomcat

• Adore Djatoka

• SOLR

• FITS

Page 6: A Light-weight DevOps Approach to Islandora

Outside the Box

• Apache HTTPD

• MySQL RDBMS

• Java JVM

• ImageMagic

• Poppler Utils

• Ghostscript

• Tesseract

Page 7: A Light-weight DevOps Approach to Islandora

Git Submodules

• Adds a git repository inside another

• Top-level repository tracks the commit ID of the submodule

Page 8: A Light-weight DevOps Approach to Islandora

Drupal Features

• Stores module dependancies, variables, permission roles, etc.

• Updated by script-driven value substitutions

Page 9: A Light-weight DevOps Approach to Islandora

Demonstrations

• Adding a new Islandora module

• Pushing configurations to staging

• Keeping up-to-date (monitoring upstream)

• Creating a new site

Page 10: A Light-weight DevOps Approach to Islandora

To-Dos

• http://github.com/lyrasis/reposervice

• Continue to refactor out LYRASIS-specific names, variables, etc.

• Refactor bin/reposervice-config out of bash

• Code a helper script for adding a submodule

• If there is interest, generalize and fork to http://github.com/Islandora