Versions Compared

Key

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

...

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.
  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.
  6. REPL: Allow the database to be replicated to multiple nodes.
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


Implement the asset store as cloud storage.

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

DSpace

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

Implement

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

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


CLI, VOLS, REPL

Public cloud deployment using KubernetesExtended AvailabilityN1 or N1 or N?
DSpaceEnable replication of the database content to allow multiple database nodes?

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









Deploying to Production / to the Cloud with Docker

...