SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
THE TWELVE-FACTOR APP
12factor.net
OLÁ :)
Vinícius Campitelli
vsilva@mediapost.com.br
Tech lead na @MediaPost
2
■ Codebase
■ Dependencies
■ Config
■ Backing services
■ Build, release, run
■ Processes
■ Port binding
■ Concurrency
■ Disposability
■ Dev/prod parity
■ Logs
■ Admin processes 3
1. CODEBASE
4
▪ Utilizar sistemas de controle de versão
▪ Apartar serviços em repositórios diferentes
▪ Relação um-a-um entre código e aplicação
▫ Mais de uma base → sistema distribuído
▪ Várias aplicações usando o mesmo código
viola o manifesto
2. DEPENDENCIES
▪ Declarar explicitamente e isolar
dependências
▫ Códigos e bibliotecas
▫ Serviços e pacotes do sistema
▫ Exemplos: curl, ImageMagick
▪ Utilizar ferramentas para gerenciá-las
▫ Exemplos: composer, Gemfile, npm 5
3. CONFIG
▪ Isolar configurações que podem sofrer
alterações entre deploys
▪ Armazená-las em variáveis de ambiente
▫ Por que não arquivos?
▫ Podem ser acidentalmente incluídos no VCS
▫ Geralmente acoplados à linguagem e/ou SO
▫ Dica de pacote: dotenv 6
4. BACKING SERVICES
▪ Serviços consumíveis via rede devem ser
tratados como recursos “acoplados”
▪ Substituir um serviço local por um remoto (ou
vice-versa) não deve precisar gerar
mudanças de código
▫ Exemplos: bancos de dados, gerenciador de
filas, caching
7
5. BUILD, RELEASE, RUN
▪ Separar estágios de deploy
▫ Build: transformação do repositório em um
pacote executável
▫ Release: combinação do build com a
configuração do ambiente
▫ Run: execução da aplicação e dos processos
necessários
8
6. PROCESSES
▪ A aplicação deve ser executada como
processo(s) stateless
▫ Arquitetura share-nothing
▫ Persistência deve ser mantida em backing
services
▫ Nem mesmo sistema de arquivos local
9
7. PORT BINDING
▪ Exporte serviços em portas
▫ A aplicação deve escutar e processar
requisições que chegam
▫ Princípio para se ter uma arquitetura
orientada a serviços
10
8. CONCURRENCY
▪ Crie aplicações que podem ser escaláveis
horizontalmente
▫ Separe tipos de processo diferente para ter
regras escaláveis diferentes
▫ Se necessário, utilize serviços de fila
▫ Exemplos: RabbitMQ, Amazon SQS, Gearman
11
9. DISPOSABILITY
▪ Processos são descartáveis
▫ Início rápido
▫ Desligamento amigável
▫ Robustos contra término inesperado
12
10. DEV/PROD PARITY
▪ Mantenha os ambientes o mais similar
possível
13
11. LOGS
▪ Devem ser considerados como streams
agnósticas
▪ Não é da responsabilidade da aplicação
gerenciar modo e destino do log
14
12. ADMIN PROCESSES
▪ Execute tarefas administrativas e de
gerenciamento no mesmo ambiente em que
sua aplicação principal
▫ Também devem ser adicionados ao VCS
15
16
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017Renato Groff
 
ASP.NET Core 2.0 - Reply - Outubro/2017
ASP.NET Core 2.0 - Reply - Outubro/2017ASP.NET Core 2.0 - Reply - Outubro/2017
ASP.NET Core 2.0 - Reply - Outubro/2017Renato Groff
 
Workshop anypoint service mesh
Workshop   anypoint service meshWorkshop   anypoint service mesh
Workshop anypoint service meshRenato de Oliveira
 
ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017Renato Groff
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...Renato Groff
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017Renato Groff
 
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017Renato Groff
 
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHPWeb Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHPFernando de Assis Rodrigues
 
Quintas da TI - Novidades do Exchange Server 2016
Quintas da TI - Novidades do Exchange Server 2016Quintas da TI - Novidades do Exchange Server 2016
Quintas da TI - Novidades do Exchange Server 2016Bruno Lopes
 
Primeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningPrimeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningDell Technologies
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018Renato Groffe
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Renato Groff
 
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018Renato Groffe
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geralRenato Groff
 

Mais procurados (20)

ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
 
ASP.NET Core 2.0 - Reply - Outubro/2017
ASP.NET Core 2.0 - Reply - Outubro/2017ASP.NET Core 2.0 - Reply - Outubro/2017
ASP.NET Core 2.0 - Reply - Outubro/2017
 
Workshop anypoint service mesh
Workshop   anypoint service meshWorkshop   anypoint service mesh
Workshop anypoint service mesh
 
ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
 
Protocolos Ipx
Protocolos IpxProtocolos Ipx
Protocolos Ipx
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 
Guilherme calcette da silva
Guilherme calcette da silvaGuilherme calcette da silva
Guilherme calcette da silva
 
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHPWeb Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
 
Quintas da TI - Novidades do Exchange Server 2016
Quintas da TI - Novidades do Exchange Server 2016Quintas da TI - Novidades do Exchange Server 2016
Quintas da TI - Novidades do Exchange Server 2016
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Primeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningPrimeira Aula do Curso de Hardening
Primeira Aula do Curso de Hardening
 
Webcast portlets-jsf
Webcast portlets-jsfWebcast portlets-jsf
Webcast portlets-jsf
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Pointer - Janeiro-2018
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
 
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018
Implementando APIs multiplataforma com o ASP.NET Core - Campus Party Brasil 2018
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
 

Semelhante a Os 12 fatores de uma aplicação

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
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Renato Groffe
 
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
 
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
 
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
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Leandro Gomes
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com HudsonLuis Reis
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFRafael T. C. Soares (tuelho)
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
Infraestrutura como código
Infraestrutura como códigoInfraestrutura como código
Infraestrutura como códigoEduardo Rozario
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016Renato Groff
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 

Semelhante a Os 12 fatores de uma aplicação (20)

The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openruko
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
 
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 ...
 
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
 
12 factor app
12 factor app12 factor app
12 factor app
 
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
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Infraestrutura como código
Infraestrutura como códigoInfraestrutura como código
Infraestrutura como código
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Fundamentos em Containers
Fundamentos em ContainersFundamentos em Containers
Fundamentos em Containers
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 

Os 12 fatores de uma aplicação

  • 3. ■ Codebase ■ Dependencies ■ Config ■ Backing services ■ Build, release, run ■ Processes ■ Port binding ■ Concurrency ■ Disposability ■ Dev/prod parity ■ Logs ■ Admin processes 3
  • 4. 1. CODEBASE 4 ▪ Utilizar sistemas de controle de versão ▪ Apartar serviços em repositórios diferentes ▪ Relação um-a-um entre código e aplicação ▫ Mais de uma base → sistema distribuído ▪ Várias aplicações usando o mesmo código viola o manifesto
  • 5. 2. DEPENDENCIES ▪ Declarar explicitamente e isolar dependências ▫ Códigos e bibliotecas ▫ Serviços e pacotes do sistema ▫ Exemplos: curl, ImageMagick ▪ Utilizar ferramentas para gerenciá-las ▫ Exemplos: composer, Gemfile, npm 5
  • 6. 3. CONFIG ▪ Isolar configurações que podem sofrer alterações entre deploys ▪ Armazená-las em variáveis de ambiente ▫ Por que não arquivos? ▫ Podem ser acidentalmente incluídos no VCS ▫ Geralmente acoplados à linguagem e/ou SO ▫ Dica de pacote: dotenv 6
  • 7. 4. BACKING SERVICES ▪ Serviços consumíveis via rede devem ser tratados como recursos “acoplados” ▪ Substituir um serviço local por um remoto (ou vice-versa) não deve precisar gerar mudanças de código ▫ Exemplos: bancos de dados, gerenciador de filas, caching 7
  • 8. 5. BUILD, RELEASE, RUN ▪ Separar estágios de deploy ▫ Build: transformação do repositório em um pacote executável ▫ Release: combinação do build com a configuração do ambiente ▫ Run: execução da aplicação e dos processos necessários 8
  • 9. 6. PROCESSES ▪ A aplicação deve ser executada como processo(s) stateless ▫ Arquitetura share-nothing ▫ Persistência deve ser mantida em backing services ▫ Nem mesmo sistema de arquivos local 9
  • 10. 7. PORT BINDING ▪ Exporte serviços em portas ▫ A aplicação deve escutar e processar requisições que chegam ▫ Princípio para se ter uma arquitetura orientada a serviços 10
  • 11. 8. CONCURRENCY ▪ Crie aplicações que podem ser escaláveis horizontalmente ▫ Separe tipos de processo diferente para ter regras escaláveis diferentes ▫ Se necessário, utilize serviços de fila ▫ Exemplos: RabbitMQ, Amazon SQS, Gearman 11
  • 12. 9. DISPOSABILITY ▪ Processos são descartáveis ▫ Início rápido ▫ Desligamento amigável ▫ Robustos contra término inesperado 12
  • 13. 10. DEV/PROD PARITY ▪ Mantenha os ambientes o mais similar possível 13
  • 14. 11. LOGS ▪ Devem ser considerados como streams agnósticas ▪ Não é da responsabilidade da aplicação gerenciar modo e destino do log 14
  • 15. 12. ADMIN PROCESSES ▪ Execute tarefas administrativas e de gerenciamento no mesmo ambiente em que sua aplicação principal ▫ Também devem ser adicionados ao VCS 15