Firefox/Input/12 Factor App

From MozillaWiki
< Firefox‎ | Input
Jump to: navigation, search

12 Factor App Compliance


At some point in the near future, events will unfold that will change the fundamentals of the Input universe.

In order to coast through these changes unscathed and not trip, fall hard and burn in the fires of infrastructure inferno, it behooves us greatly to adhere to the principles of the 12 Factor App.

This project covers fixing the things that cause Input to be out of compliance with 12 Factor.



  • December 4th, 2014: Lonnen told me 12-Factor is the way.
  • December 4th, 2014: Will wrote up the initial project plan and tracker bug.


12 Factor App page here:

Things that Input is out of compliance with:

  • II. Explicitly declare and isolate dependencies ( -- Input currently uses several compiled dependencies which are installed on the system by webops. That'd need to be figured out. It's possibly an easy thing to fix. At a bare minimum, we should have a list of all system dependencies we have (e.g. python2.7, pip x.y, ...).
  • III. Store config in environment ( -- Input stores configuration in fjord/settings/ We need to redo that so that it pulls from the environment and has sane defaults.
  • V. Build, release, run ( -- We're definitely going to have to rewrite our deploy scripts. However, we're probably going to need to wait to do this until we know what the environment we're switching to looks like.

Of those, item III is the big issue we definitely need to fix first, we should look at item II to get a better handle on whether it's really an issue or not.

Item V will be pushed off until later (2015q2?) when we find out what environment we're going to and what options are available.


  1. store configuration in the environment
  2. all dependencies are specified explicitly in requirements files


Tracker bug:

Full Query
ID Summary Priority Status
1137018 [12fa] switch to dj-database-url -- RESOLVED
1137022 [12fa] switch to environment-based config for instance settings -- RESOLVED
1137023 [12fa] Explicitly declare and isolate dependencies -- RESOLVED

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);