A metodologia Twelve-Factor para construção de SaaS

Nao é de hoje que o mercado de software vem sofrendo uma revolução com o boom das soluções PaaS (plataforma como serviço) como Amazon AWS, Microsoft Azure, Openshift ou Heroku. Com as empresas utilizando cada vez mais soluções na nuvem, seja devido à redução dos custos de infraestrutura ou o aumento da disponibilidade, se tornou crítico rever a modelagem das aplicações buscando aumentar escalabilidade, tolerância a falhas e facilitar o gerenciamento e a manutenção.

Com a experiência adquirida com os milhares de clientes de sua plataforma na nuvem, o Heroku formulou um manifesto para a arquitetura de aplicações Saas (software como serviço) chamada metodologia Twelve-Factor App.

Esse manifesto foi escrito em 2012 e, embora não possa ser encarado como verdade absoluta, sua leitura é extremamente recomendada e muitas das boas práticas abordadas são realmente valiosas. Então leia, reflita e aplique no seu próximo projeto, seja no desenvolvimento ou nas suas tarefas como DevOps.

O documento é organizado da seguinte maneira:

I. Base de Código
Uma base de código com rastreamento utilizando controle de revisão, muitos deploys.

II. Dependências
Declare e isole as dependências.

III. Configurações
Armazene as configurações no ambiente.

IV. Serviços de Apoio
Trate os serviços de apoio, como recursos ligados.

V. Build, release, run
Separe estritamente os builds e execute em estágios.

VI. Processos
Execute a aplicação como um ou mais processos que não armazenam estado.

VII. Vínculo de porta
Exporte serviços por ligação de porta.

VIII. Concorrência
Dimensione por um modelo de processo.

IX. Descartabilidade
Maximizar a robustez com inicialização e desligamento rápido.

X. Dev/prod semelhantes
Mantenha o desenvolvimento, teste, produção o mais semelhante possível.

XI. Logs
Trate logs como fluxo de eventos.

XII. Processos de Admin
Executar tarefas de administração/gerenciamento como processos pontuais.

Bons estudos!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *