Good Morning everyone,
Over the last few days I have been working on a small app: mdapi.
It is aimed at serving the metadata from our repos simply and *fast*, offering
information from koji, rawhide, all our active branches and epel (you'll have to
specify which you want) and for each it will return you the first hit it finds
in the testing, updates or release repo (it says which in the json returned).
I deployed it for testing in our cloud, at:
http://209.132.184.236/
This morning I took a look at what it would take to package mdapi for epel7.
mdapi has 5 dependencies:
- aiohttp -> Has an epel7 branch but was never built, open a ticket on the
bugzilla asking it
- requests -> Exists in RHEL channels but not as py3, so will need a new
package
- simplejson -> Asked the current PoC if it could be built with the py3
sub-package in epel7
- sqlalchemy -> Looked at it (I'm the PoC for epel7), but requires:
- python3-setuptools (same situation as requests)
- requires: python3-pip, python3-wheel, python3-mock,
python3-pytest
- python3-nose (same situation as requests and setuptools
as requests
- werkzeug -> same situation as requests, setuptools...
The dependency list as well as the current situation of the guidelines for
packaging python3 app in epel [1], makes me proposing that we deploy mdapi in
Fedora (at least for now).
The second point I would like to raise is how we deploy this application. This
isn't a standard wsgi application (since it's async) and it cannot run with
apache (afaiu).
So far the other async application we have (in pagure) have been deployed simply
as a systemd service.
I wonder if we want to use the same approach here or if we should investigate
things like gunicorn/nginx or so.
Does someone have experience in this field? Any advice/feedback?
Thanks for your attention,
Pierre
[1]
https://fedorahosted.org/fpc/ticket/567