Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning

OUTDATED / OBSOLETE: Please see DSpace and Docker for latest info.

Table of Contents

Problem Summary

...

This grid has been designed to help recommend how our images will need to evolve to support multiple deployment options.

Deployment Resources

Potential DSpace code changes required for implementation

  1. INGEST: Move docker ingest tools from docker-compose mount directories into the docker image file system.
  2. VARIABLES: Simplify variable overrides by not using dashes and docs in variable names.
    1. Could a config map be used?  https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
  3. CFG: Create a mechanism to pass in a config file when starting an image
  4. CLI: Migrate all CLI functionality to REST API calls.  Create a queue system to allow some tasks to run in an isolated memory space.
  5. VOLS: Implement volumes as cloud storage.  Cloud storage could be accessed from multiple nodes. Ensure that all CLI tasks (esp filter-media tasks) do not rely on a file system.
  6. REPL: Allow the database to be replicated to multiple nodes.
  7. EMAIL: Integrate email service into image.
  8. AUTH: Integrate authentication providers into image.
Deployment OptionsUptimeDSpace Nodes: Tomcat, SOLR, AngularDB NodesPersistenceCLI Access and cron tasksNotesChanges needed to DSpace code
Local workstation/test server deployment with Docker Compose Limited Duration for Testing11Docker Compose Volumesdocker exechttps://github.com/DSpace-Labs/DSpace-Docker-Images

Dockerfiles

Consider moving some of the ingest tooling from docker-compose mounted files to a tools directory within the image.Insert custom dspace.cfg settings into distrib
Docker Compose
Remove test tools and scripts from the docker compose files.

INGEST

Server deployment with Docker Compose (shell access to server and network drives)Extended Availability11Docker Compose Volumes bound to file system storageSSH + docker exec

Dockerfiles
Use dockerfiles without test access


INGEST, CFG

Docker swarm optionsExtended Availability????https://docs.docker.com/v17.09/get-started/part6/
Local workstation/test server deployment with KubernetesLimited Duration for Testing11Use "local" volume.
https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes
?Some experimentation here: https://github.com/DSpace-Labs/DSpace-Docker-Images/pull/140
Server deployment with Kubernetes (shell access to server and network drives)Extended Availability11??

Server deployment with Portainer managementExtended Availability????https://www.portainer.io
Public cloud deployment using vendor-specific deployment option (such as Amazon ECS or Fargate)Extended Availability11Assetstore in cloud storageNo access
DSpaceImplement the asset store as cloud storage.

Enable all CLI functionality through the REST API.  Some CLI functionality might need to be queued to a separate worker thread.


CLI, VOLS

Public cloud deployment using KubernetesExtended Availability11Assetstore in cloud storage?
DSpace

Enable all CLI functionality through the REST API.  Some CLI functionality might need to be queued to a separate worker thread.

Implement the asset store as cloud storage.

Enable replication of the database content to allow multiple database nodes?

CLI, VOLS

Public cloud deployment using vendor-specific deployment option (such as Amazon ECS or Fargate)Extended AvailabilityN1 or NAssetstore in cloud storageNo access

DSpace

Enable all CLI functionality through the REST API.  Some CLI functionality might need to be queued to a separate worker thread.

Implement the asset store as cloud storage.

Dockerfiles


CLI, VOLS, REPL

Public cloud deployment using KubernetesExtended AvailabilityN1 or N1 or N?

DSpace

Enable all CLI functionality through the REST API.  Some CLI functionality might need to be queued to a separate worker thread.

Implement the asset store as cloud storage.

Dockerfiles

Enable replication of the database content to allow multiple database nodes?


CLI, VOLS, REPL









Deploying to Production / to the Cloud with Docker

...

Goal 1: Simplify and standardize the process for creating a development environment for all supported versions of DSpace

  • Status: Complete: tinymce.emotions_dlg.check(tick)

Docker provides a consistent, predictable environment

...