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
- INGEST: Move docker ingest tools from docker-compose mount directories into the docker image file system.
- VARIABLES: Simplify variable overrides by not using dashes and docs in variable names.
- Could a config map be used? https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
- CFG: Create a mechanism to pass in a config file when starting an image
- CLI: Migrate all CLI functionality to REST API calls. Create a queue system to allow some tasks to run in an isolated memory space.
- 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.
- REPL: Allow the database to be replicated to multiple nodes.
- EMAIL: Integrate email service into image.
- AUTH: Integrate authentication providers into image.
Deployment Options | Uptime | DSpace Nodes: Tomcat, SOLR, Angular | DB Nodes | Persistence | CLI Access and cron tasks | Notes | Changes needed to DSpace code |
---|---|---|---|---|---|---|---|
Local workstation/test server deployment with Docker Compose | Limited Duration for Testing | 1 | 1 | Docker Compose Volumes | docker exec | https://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 distribDocker 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 Availability | 1 | 1 | Docker Compose Volumes bound to file system storage | SSH + docker exec |
Dockerfiles
Use dockerfiles without test access
INGEST, CFG | |||||||
Docker swarm options | Extended Availability | ? | ? | ? | ? | https://docs.docker.com/v17.09/get-started/part6/ | |
Local workstation/test server deployment with Kubernetes | Limited Duration for Testing | 1 | 1 | Use "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 Availability | 1 | 1 | ? | ? | ||
Server deployment with Portainer management | Extended Availability | ? | ? | ? | ? | https://www.portainer.io | |
Public cloud deployment using vendor-specific deployment option (such as Amazon ECS or Fargate) | Extended Availability | 1 | 1 | Assetstore in cloud storage | No access |
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 Kubernetes | Extended Availability | 1 | 1 | Assetstore in cloud storage | ? |
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 Availability | N | 1 or N | Assetstore in cloud storage | No 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 Kubernetes | Extended Availability | N | 1 or N | 1 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:
Docker provides a consistent, predictable environment
...