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.

Thanks,
Clément