Stian Soiland-Reyes created TAVERNA-941:
-------------------------------------------
Summary: Use Docker microservices from workflow
Key: TAVERNA-941
URL: https://issues.apache.org/jira/browse/TAVERNA-941
Project: Apache Taverna
Issue Type: Story
Components: Taverna Engine
Reporter: Stian Soiland-Reyes
While TAVERNA-901 suggests a way to run Docker command line tools from Taverna,
a more interesting aspect could be to run microservices from Taverna - with
bindings to the dynamic ports of Docker.
This would allow usage of existing WSDL and REST services in a Taverna
workflow, but with an alternative Profile to use local Docker microservices.
This could then use server-based web UI tools like OpenRefine and Jupyter - but
also pure servers like RServe, ElasticSearch and Jena Fuseki SPARQL endpoints.
Taken to the extreme this could be to start up a local [Open PHACTS
stack|https://github.com/openphacts/ops-docker/] (multiple Docker images
combined with docker-compose). (As this requires 32 GB of RAM and 0.5 TB of
disk space that would not be a microservice though!)
This is more architecturally challenging than the activity of TAVERNA-901 - as
it would mean preprocessing steps like
* Workflow Bundle lists required docker images
* Fetch Docker images
** Optional: load images stored in workflow bundle
* Start Docker containers - possibly listening on dynamic ports
* Optional: Using docker-compose for combining many containers
* Check that containers are "ready" (unsolved problem in Docker world)
* Modify/generate workflow profile to use the assigned localhost/port bindings
for the docker microservices
* Run the rest of the workflow
* Shut down containers
* Remove containers (optional)
* Store provenance about Docker containers into Docker Bundle (optional)
** Snapshot docker images used into Data Bundle
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)