SlideShare uma empresa Scribd logo
1 de 18
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/

Mais conteúdo relacionado

Mais procurados

Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaPalestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaRenato Haddad
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
MUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appMUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appRenato de Oliveira
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSCDS
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayVitor Albuquerque
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Renato Groff
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemGlenio Borges
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoLetticia Nicoli
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesGraziella Bonizi
 
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715Renato Groff
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Renato Groff
 
Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Ariovaldo Carmona
 
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São Paulo
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São PauloSQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São Paulo
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São PauloRenato Groff
 
DevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de VulnerabilidadesDevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de VulnerabilidadesVagner Rodrigues Fernandes
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerNewton Angelini
 

Mais procurados (20)

Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaPalestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
MUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appMUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu app
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMS
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com Flyway
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na Nuvem
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no Kubernetes
 
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvem
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
 
Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012
 
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São Paulo
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São PauloSQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São Paulo
SQL Server 2017 para Desenvolvedores de Software - TDC 2018 - São Paulo
 
DevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de VulnerabilidadesDevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Front7 React Native
Front7 React NativeFront7 React Native
Front7 React Native
 

Semelhante a 12 factor app

TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openrukoÉverton Ribeiro
 
Praticas DevOps Com ZendServer
Praticas DevOps Com ZendServerPraticas DevOps Com ZendServer
Praticas DevOps Com ZendServerWilliam Felipe
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...tdc-globalcode
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Renato Groffe
 
IBM Domino 9 cluster - zero to hero
IBM Domino 9 cluster - zero to heroIBM Domino 9 cluster - zero to hero
IBM Domino 9 cluster - zero to heroAndré Luís Cardoso
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 

Semelhante a 12 factor app (20)

TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openruko
 
Praticas DevOps Com ZendServer
Praticas DevOps Com ZendServerPraticas DevOps Com ZendServer
Praticas DevOps Com ZendServer
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
12 Factor Apps
12 Factor Apps12 Factor Apps
12 Factor Apps
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
 
Django
DjangoDjango
Django
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
Fundamentos em Containers
Fundamentos em ContainersFundamentos em Containers
Fundamentos em Containers
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
 
IBM Domino 9 cluster - zero to hero
IBM Domino 9 cluster - zero to heroIBM Domino 9 cluster - zero to hero
IBM Domino 9 cluster - zero to hero
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 

12 factor app

  • 2. $ whoami Estevam de Moraes 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 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 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 ● A app atende a inicialização de novos processos sem comprometer seu funcionamento;
  • 11. 7 Vínculo de portas ● Exporte serviços por ligação de portas;
  • 12. 8 Concorrência ● Escalabilidade do serviço; ● Instanciar serviços em paralelo sem afetar a solução
  • 13. 9 Descartabilidade ● Terminar processos 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 ● Trate logs 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 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
  • 18. Obrigado Estevam de Moraes Rodrigues DevOps Engineer | Paraná Banco https://www.linkedin.com/in/estevamrodrigues/