The Twelve-Factor App

XII. Processos de administração

Rode tarefas de administração/gestão como processos pontuais

O processo de formação é o conjunto de processos que são usados para fazer as negociações regulares da app como ela é executada (tais como manipulação de requisições web). Separadamente, os desenvolvedores, muitas vezes desejam fazer tarefas pontuais de administração ou manutenção para a app, tais como:

Processos de administração pontuais devem ser executados em um ambiente idêntico, como os processos regulares de longa execução da app. Eles rodam uma versão, usando a mesma base de código e configuração como qualquer processo executado com essa versão. Códigos de administração devem ser fornecidos com o código da aplicação para evitar problemas de sincronização.

A mesma técnica de isolamento de dependência deve ser usada em todos tipos de processos. Por exemplo, se o processo web Ruby usa o comando bundle exec thin start, então uma migração de base de dados deve usar bundle exec rake db:migrate. Da mesma forma, um programa Python usando Virtualenv deve usar bin/python vendorizado para executar tanto o servidor web Tornado e qualquer processo de administração manage.py.

Dozes-fatores favorece fortemente linguagens que fornecem um shell REPL embutido, e que tornam mais fácil executar scripts pontuais. Em um deploy local, os desenvolvedores invocam processos de administração pontuais por um comando shell direto dentro do diretório de checkout da app. Em um deploy de produção, desenvolvedores podem usar ssh ou outro mecanismo de execução de comandos remoto fornecido por aquele ambiente de execução do deploy para executar tal processo.