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

Containerize centillion #66

Open
charlesreid1 opened this issue Aug 17, 2018 · 2 comments
Open

Containerize centillion #66

charlesreid1 opened this issue Aug 17, 2018 · 2 comments
Labels

Comments

@charlesreid1
Copy link
Contributor

Making centillion serverless (and solving #20, run centillion on heroku) is going to be much easier if we containerize centillion.

We've had excellent expereinces with jfloff's alpine-python-3, a super lightweight Python container that's easy to configure with a requirements.txt file. This is a good bet.

Should we split centillion into sub-services? My initial response is no, there's no good reason since everything operates as a single unit. But that's not quite true - the Flask application and the Search object are a single unit, but when re-indexing, the application spawns independent tasks - so there might be some usefulness to having a container to run the search engine, and another container to update the search index, with both containers bind-mounting the search_index folder.

Furthermore, if we end up using SqlAlchemy (is this even necessary if we're using a container?), this may be wise to run as a separate service in a separate container. (Then again, maybe not.)

Okay, let's summarize.

First steps to dockerize centillion:

  • build a Dockerfile for whoosh/centillion and mayke shure it wurk guud
  • build a single-service docker-compose.yml file (bind-mount site_index directory) to run as a pod
  • test the configuration locally
  • test the configuration using beta site
  • if everything's going well, pull the old switcheroo with search.nihdatacommons.us
@charlesreid1
Copy link
Contributor Author

charlesreid1 commented Sep 13, 2018

Revisiting this.

We want to containerize centillion, but the motivation is for testing - we want to make testing easier for the version 1.7 release.

Test plan: https://github.com/dcppc/centillion/blob/testing/tests/Readme.md

QE plan: https://github.com/dcppc/centillion/blob/testing/quality/Readme.md

@charlesreid1
Copy link
Contributor Author

Now that we have packaged centillion and released version 1.7, we are ready to Dockerize centillion. Let's pick this back up.

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

1 participant