The Twelve-Factor App

XII. Admin procesy

Spouštějte administrativní úlohy jako jednorázové procesy.

Formace procesů je sada procesů, které aplikace používá pro svůj běh (jako je například obsluha příchozích požadavků). Kromě toho potřebují vývojáři často spouštět i jednorázové administrativní nebo úlohy údržby, jako například:

Jednorázové administrativní procesy by měly být spouštěny ve stejném prostředí jako běžné dlouho běžící procesy aplikace. Běží proti vydání za použití stejného kódu a konfigurace jako ostatní procesy daného vydání. Administrativní kód musí být dodáván spolu s aplikací, aby se zabránilo problémům se synchronizací.

Stejné techniky izolace závislostí by měly být použity na všechny typy procesů. Například, pokud Ruby webový proces používá příkaz bundle exec thin start, tak databázová migrace by měla používat bundle exec rake db:migrate. Obdobně by pak měl program v Pythonu, využívající Virtualenv, používat přibalený bin/python pro spouštění jak Tornado webserveru, tak i pro spouštění manage.py administrativního procesu.

Twelve-factor metodika silně preferuje jazyky, které poskytují REPL shell v základu a umožňují tak snadno spouštět jednorázové skripty. V lokálním nasazení spouštějí vývojáři jednorázový administrativní proces příkazem přímo v shellu uvnitř repozitáře. V produkčním nasazení mohou vývojáři použít SSH nebo jiný způsob vzdáleného spouštění příkazů, který je v daném nasazení pro spouštění procesů k dispozici.