Pular para conteúdo

12 Factor App

12 Factor App é uma metodologia de desenvolvimento de software que visa criar aplicativos escaláveis, portáteis e resilientes. Essa metodologia é composta por 12 fatores, cada um representando uma prática recomendada para construir aplicativos modernos que funcionem bem em ambientes de nuvem.

Práticas dos 12 Fatores

  • Codebase: mantenha uma única codebase para seu aplicativo e versione-o adequadamente;
  • Dependencies: use gerenciadores de pacotes para gerenciar as dependências do seu aplicativo;
  • Config: armazene a configuração do seu aplicativo no ambiente, não no código;
  • Backing services: trate serviços como recursos anexados e use configuração para se conectar a eles;
  • Build, release, run: separe o processo de construção, liberação e execução do aplicativo;
  • Processes: execute o aplicativo como um ou mais processos sem estado;
  • Port binding: exponha serviços por portas declaradas no ambiente;
  • Concurrency: dimensione por meio do processo e use um modelo de concorrência sem estado ou compartilhamento de estado;
  • Disposability: maximize a robustez com inicialização rápida e encerramento limpo;
  • Dev/prod parity: mantenha o desenvolvimento, o teste e a produção o mais semelhantes possível;
  • Logs: trate logs como fluxo de eventos;
  • Admin processes: execute tarefas de administração/gerenciamento como processos individuais.

Exemplo de usos

Um exemplo prático de como usar os 12 fatores pode ser visto em um aplicativo que foi desenvolvido seguindo essas práticas. Esse aplicativo é fácil de configurar, implantar e escalar, pois todos os seus aspectos foram projetados pensando na escalabilidade, portabilidade e resiliência.

Prós e Contras

Prós

  • Ajuda a criar aplicativos escaláveis e resilientes;
  • Facilita a implantação e o gerenciamento de aplicativos em ambientes de nuvem;
  • Melhora a portabilidade do aplicativo;
  • Simplifica a configuração do aplicativo.

Contras

  • Algumas práticas podem ser difíceis de implementar em aplicativos legados;
  • Nem todas as práticas podem ser aplicáveis a todos os aplicativos;
  • Pode haver um overhead inicial ao implementar todas as práticas.

Conclusão

Os 12 fatores são uma metodologia poderosa para ajudar a criar aplicativos modernos que sejam escaláveis, portáteis e resilientes. Essas práticas são especialmente úteis para aplicativos que são executados em ambientes de nuvem. No entanto, como em qualquer metodologia, as práticas devem ser adaptadas às necessidades do aplicativo e à realidade do projeto.

comments powered by Disqus

Veja também: