On 09/11/2018 11:48 AM, Clement Verna wrote:
Hi all,
I would like to start working on the replacement application for PDC in
Fedora. So far I have been mostly looking at the technical side of the
application and how it will be setup in our infrastructure.
Below is a list of the design decisions I am looking to take. I would
really value some feedback on this in order to see if this is realistic or
not.
# Technical stack
* Python 3 (just making it obvious)
* Django 1.11 LTS (supported until at least April 2020) [0]
* DRF 3.8.2 (latest version)
Using Django and DRF (Django REST Framework) should allow us to reuse some
of PDC code.
# Application architecture
* 1 backend service used to update the PDC database (currently
pdc-updater [1])
* 1 frontend service serving the API HTTP endpoint and the HTML
documentation of these endpoint.
* 1 database
# Deployment architecture
* Backend service runs in Openshift (need access to the
fedora-messaging bus)
* Frontend service runs in Openshift
* Database runs in on Fedora Infrastructure database hosts.
# Development Workflow
* I would like to have the possibility for these services to be
automatically deployed on our Openshift instances (stg and prod) using the
Github build trigger [2] available in Openshift.
An idea to achieve this is to use Openshift S2I (source-to-image) [3]
feature and use PyPi to install the application dependencies. In order to
control which dependencies we are using and pulling from PyPi we could use
devpi [4] as a caching proxy.
This all sounds perfectly great to me... everything should be there for
this with one exception: We really want to have some check in place for
s2i so that it checks license, so we don't accidentally push out
something thats not under a open source license. This doesn't need to be
a blocker, but it would be great to get in place soon.
kevin