12 factor app
$ whoami
Estevam de Moraes Rodrigues
DevOps Engineer | Paraná Banco
https://www.linkedin.com/in/estevamrodrigues/
The Twelve-Factor App
● Manifesto com série de boas práticas;
● Automação, portabilidade, menos divergências entre ambientes;
● Implantação na nuvem com elasticidade;
● Apps stateless
12 factor app
● Infraestrutura para:
● Suportar;
● Empacotar;
● Disponibilizar a app com alto nível de maturidade e agilidade
1 Base de código
● App deve ter apenas 1 base de código vs implantação em vários ambientes;
Codebase
deploy prod
deploy staging
deploy dev
2 Dependência
● Declare todas as dependências da app;
● Não devemos assumir que nosso container/servidor de app possua algum componente já
instalado
3 Configuração
● Configurar a app sem necessitar atualizar o código;
● As configurações devem considerar o ambiente
● Exemplos são: bancos de dados, cache, filas, credenciais de serviços remotos
4 Serviços de apoio
● Qualquer app que o código precisa para funcionar;
● Não faça distinção entre serviço interno e externo
deploy prod
MySQL
Amazon S3
5 Construa, lance, execute
● Construa: código do repo em um pacote executável;
● Lance: pacote + configuração;
● Execute: inicia a execução do lançamento
code build
Config
release
6 Processos
● A app atende a inicialização de novos processos sem comprometer seu funcionamento;
7 Vínculo de portas
● Exporte serviços por ligação de portas;
8 Concorrência
● Escalabilidade do serviço;
● Instanciar serviços em paralelo sem afetar a solução
9 Descartabilidade
● Terminar processos defeituosos na mesma velocidade que inicia;
10 Paridade entre
desenvolvimento/produção
● Manter os ambientes desde o desenvolvimento até produção mais similar possível;
11 Logs
● Trate logs como fluxo de eventos coletados dos fluxos de saída de todos os processos em
execução e serviços de apoio;
12 Processos de administração
● Tarefas de administração devem ocorrer sem afetar a solução como um todo;
● Exemplo: migração de dados, execução de scripts de backup
Referências
● https://12factor.net/pt_br/
● https://leanpub.com/dockerparadesenvolvedores
● https://github.com/rafabene/12factor-app
Obrigado
Estevam de Moraes Rodrigues
DevOps Engineer | Paraná Banco
https://www.linkedin.com/in/estevamrodrigues/

12 factor app

  • 1.
  • 2.
    $ whoami Estevam deMoraes Rodrigues DevOps Engineer | Paraná Banco https://www.linkedin.com/in/estevamrodrigues/
  • 3.
    The Twelve-Factor App ●Manifesto com série de boas práticas; ● Automação, portabilidade, menos divergências entre ambientes; ● Implantação na nuvem com elasticidade; ● Apps stateless
  • 4.
    12 factor app ●Infraestrutura para: ● Suportar; ● Empacotar; ● Disponibilizar a app com alto nível de maturidade e agilidade
  • 5.
    1 Base decódigo ● App deve ter apenas 1 base de código vs implantação em vários ambientes; Codebase deploy prod deploy staging deploy dev
  • 6.
    2 Dependência ● Declaretodas as dependências da app; ● Não devemos assumir que nosso container/servidor de app possua algum componente já instalado
  • 7.
    3 Configuração ● Configurara app sem necessitar atualizar o código; ● As configurações devem considerar o ambiente ● Exemplos são: bancos de dados, cache, filas, credenciais de serviços remotos
  • 8.
    4 Serviços deapoio ● Qualquer app que o código precisa para funcionar; ● Não faça distinção entre serviço interno e externo deploy prod MySQL Amazon S3
  • 9.
    5 Construa, lance,execute ● Construa: código do repo em um pacote executável; ● Lance: pacote + configuração; ● Execute: inicia a execução do lançamento code build Config release
  • 10.
    6 Processos ● Aapp atende a inicialização de novos processos sem comprometer seu funcionamento;
  • 11.
    7 Vínculo deportas ● Exporte serviços por ligação de portas;
  • 12.
    8 Concorrência ● Escalabilidadedo serviço; ● Instanciar serviços em paralelo sem afetar a solução
  • 13.
    9 Descartabilidade ● Terminarprocessos defeituosos na mesma velocidade que inicia;
  • 14.
    10 Paridade entre desenvolvimento/produção ●Manter os ambientes desde o desenvolvimento até produção mais similar possível;
  • 15.
    11 Logs ● Tratelogs como fluxo de eventos coletados dos fluxos de saída de todos os processos em execução e serviços de apoio;
  • 16.
    12 Processos deadministração ● Tarefas de administração devem ocorrer sem afetar a solução como um todo; ● Exemplo: migração de dados, execução de scripts de backup
  • 17.
  • 18.
    Obrigado Estevam de MoraesRodrigues DevOps Engineer | Paraná Banco https://www.linkedin.com/in/estevamrodrigues/