Skip to content

Instantly share code, notes, and snippets.

@btopro
Last active January 19, 2019 16:51
Show Gist options
  • Save btopro/9e6cf90b73ba1a58c992 to your computer and use it in GitHub Desktop.
Save btopro/9e6cf90b73ba1a58c992 to your computer and use it in GitHub Desktop.
ELMSLN Technical review

Today's agenda

Tools / applications to be shown

ELMSLN Background (12 min presentation)

  • Who's using it?
  • What is it?
  • When did it start?
  • Where is it used?
  • How can I use it?
  • Why would I use it?
  • Where is it headed (prototype mock ups) authoring, course experience.

ELMSLN in action

  • Tour a Working deployment
  • Show a few live courses (arch100 music007)
  • Course Instructional Outline (MOOC - Production)
  • Course Information System (CIS - Production)
  • ELMS Media (ELMSMEDIA - Production)
  • Analytics via PIWIK (Production)
  • ELMS Collaborative Learning Environment (CLE - Dev)
  • Interactive Course Object Repository (ICOR - Dev)
  • Discussions (Harmony - Dev)
  • ELMS Compliance Distro Prototype (ECD - Dev)

Webservices (3 min of slides)

  • RESTWS principles / Services / REST in general
  • How they talk to each other
  • CIS workflow when a new section is added
  • Drush create site / job file approach
  • Auto-generated keychain (show one)
  • Calls from _cis_connector_request
  • Cronkey set on build so it can call later
  • Show a few web-services based calls in action (switching section context, enable the call logger via SFTP upload to online.aanda)
  • Hey ELMSLN, why you no look like drupal?!
  • DSLM (plus patches) / Symlinked core
  • Core above Core approach
  • Clustered multisite
  • Explaining a "shared" contrib / what the “golden contrib” is
  • ELMSLN contrib’ed projects
  • Dual repo management
  • Drush plugins to author things into the stack in the right places
  • "Config" completely abstracted from "Core"

Definition of config: Anything that will change after the initial code is pulled from github (any and everything).

Development workflow

  • Dig into a little bit of how the vagrant file is constructed, what it does
  • Go over Chef, how it works, show a few recipes
  • Mention puphpet (not that I use that for this)
  • SSH into vagrant workflow
  • Test new change, “upload” into VM to test
  • Mapped completely to git repo
  • Git setup
  • Multiple repos
  • Sub-repo example (elmsln-developer)
  • Repo in a repo example (cis in elmsln)
  • Cautions affiliated with both
  • Git Prehooks
  • Multiple origins
  • Commit (prehooks)
  • Github / Pull request workflow

Never leave a Human to a Robot's job

Project management

The Singularity (Lots o Automation)

More generic Bash scripts

  • Security hardening
  • Configuration backup
  • Help Apply Jenkins user to server

ELMSLN Specific

  • Self-upgrading script
  • Preinstall (walk through in travis)
  • Install (walk through in travis)

Drush automation

  • Install Drush for current user / Apply admin (which does the self-updating .drush)
  • Spidering / self building alias file
  • Profiler Builder / Drush recipes - What it is?
  • Recipes that are useful (dr_safe_upgrade)
  • Options for authoring your own recipes quickly
  • Where it’s used in ELMSLN self-upgrade (point to location)
  • drup command (point to location implemented)

Jenkins

  • What is it?
  • “execute remote” / other utility scripts in ELMSLN
  • Reporting to Slack via bash
  • Drush Remote management
  • Creating new routines
  • “Views”
  • Automated rolling into remote, Jenkins based management

The future

  • Ability for fractal networks (multiple deployments acting as one)
  • Jenkins managing most of the universities Drupal infrastructure automatically
  • Self rebuilding Rebuilding Demo based on post hook
  • Automatic PR of new module releases on d.o.
  • Ansible playbooks (more of them, abstract current VMhost one)
  • Total containerization / tested compatibility with Debian / other *NIX varients
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment