The Twelve-Factor App

XII. Admin procesy

Spúštanie administrátorských/správcovských úloh ako jednorazových procesov

Process formation je sada procesov, ktoré tvoria bežnú prevádzku aplikácie (napríklad odpovedanie na požiadavky). Na rozdiel od toho, vývojári často chcú spraviť jednorazové administratívne alebo údržbové úlohy, ako napríklad:

Jednorazové administračné procesy by sa mali spúštať v identickom prostredí ako bežné dlho bežiace procesy aplikácie. Bežia voči releasu, použitím rovnakého kódu a konfigurácie ako ostatné procesy bežiace v rámci releasu. Administračný kód sa musí dodať spolu s kódom aplikácie, aby sa zamedzilo synchronizačným problémom.

Rovnaká technika izolácie závislostí by sa mala použiť pre všetky typy procesov. Napríklad, ak Ruby webový proces používa príkaz bundle exec thin start, potom databázová migrácia by mala používať bundle exec rake db:migrate. A podobne Python program používajúci Virtualenv by mal používať bin/python rovnako na spúšťania Tornado webservera aj všetkých manage.py administračných procesov.

Dvanásť faktorová aplikácia silne preferuje jazyky, ktoré poskytujú REPL shell už v základe, a ktoré jednoducho umožňujú spúštanie jednorazových skriptov. Vývojári na lokálnom nasadení spúšťajú jednorazové administračné procesy priamym shell príkazom v priečinku aplikácie. V produkčnom nasadení môžu vývojári použiť ssh alebo iný spôsob vzdialeného spúšťania príkazov, ktorý poskytuje dané exekučné prostredie na spustenie takého procesu.