Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor into production-level deployment #24

Open
7 tasks
sveinugu opened this issue Sep 7, 2020 · 0 comments
Open
7 tasks

Refactor into production-level deployment #24

sveinugu opened this issue Sep 7, 2020 · 0 comments
Assignees
Labels

Comments

@sveinugu
Copy link
Contributor

sveinugu commented Sep 7, 2020

The server currently runs in a single process/thread setup, using the run() method of Flask. From the documentation:

        Runs the application on a local development server.

        Do not use ``run()`` in a production setting. It is not intended to
        meet security and performance requirements for a production server.
        Instead, see :ref:`deployment` for WSGI server recommendations.

We need to improve the deployment of the augmentation server in order to serve it as a proper production server. This includes:

  • uWSGI server
  • Support for multiple threads, processes or both
  • Ontologies dict needs to be read in only once, at startup, and work as a resource for the other threads/processes.
  • Ontology data should be updated to new versions regularly, hence the ontology reference data is not considered immutable. One can for instance store last modification date of each ontology file and then regularly check whether the remote file has been modified.
  • Keep support for local disk storage of ontology files to improve launch speed (used for unit tests today)
  • Keep support for running tests without having to deploy a server.
  • Assume a docker compose setup will be a natural choice. But should still run this together with the TrackFind service, at least for now.

Create sub-issues as needed. Not priority for v2.0, but soon after.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants