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

DevOps Documentation #2

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

DevOps Documentation #2

charlesreid1 opened this issue Aug 18, 2018 · 2 comments

Comments

@charlesreid1
Copy link
Contributor

For the purposes of dcppc, we need to document the DevOps setup for Uncle Archie.

This would be good to add to the documentation under "Example Setup" or similar.

  • Domain name entry for archie.nihdatacommons.us pointing to server IP
  • AWS server running nginx reverse proxy wrapping Python flask app

Heroku? No, b/c can't build things.

@charlesreid1
Copy link
Contributor Author

Although, in theory, once you abstract away the details, certain tasks that don't require building things (e.g., running a spellchecker or a linting script) could be run with an Uncle Archie instance on Heroku. So, we don't want to design assuming that Uncle Archie will never run on Heroku - we should design it such that the non-Heroku-runnable parts can be removed as a module, and the rest can be run on Heroku.

(runs on heroku flag)

@charlesreid1
Copy link
Contributor Author

charlesreid1 commented Sep 12, 2018

The problem with writing tests is that you so quickly run into meta-meta-problems.

Example: Uncle Archie runs on Heroku. You want to check if certain software is available, or where it is. If it isn't Python you start to link in higher-level interactions.

The other hooks end up using python to set up a virtual environment, and run tests via python, and tests are a bewildering forest of patterns, decorators, confusing output/error redirection, logging, and object oriented programming just to make everything a bit more complicated.

If you're running Docker via Uncle Archie, now you've got even more levels beneath you, because you're running Docker, mounting a repo or cloning a repo, managing the docker pod from python, via the command line, and trying to manage and monitor the output status/return codes, etc. Testing is a very meta programming task.

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

No branches or pull requests

1 participant