...
- 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.
- 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 | 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 | 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 | CLI, VOLS | |
Public cloud deployment using Kubernetes | Extended Availability | 1 | 1 | Assetstore in cloud storage | ? | 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 | CLI, VOLS, REPL | |
Public cloud deployment using Kubernetes | Extended Availability | N | 1 or N | 1 or N | ? | CLI, VOLS, REPL | |
...