O documento discute como aplicações tradicionais podem ser transformadas para se adequarem aos princípios da arquitetura de microsserviços e contêineres. Primeiramente, é discutido como dividir a aplicação monolítica em vários microsserviços independentes. Em seguida, é mostrado como implantar os microsserviços utilizando contêineres para prover alta disponibilidade, escalabilidade e homogeneidade entre ambientes de desenvolvimento e produção. Por fim, é abordado a importância do monitoramento centralizado para acompanhar o dese
14. 12 Factor app
14
CODEBASE Dependencies Config Backing Services
Build, Release,
Run
Processes Port Binding Concurrency
Disposability Dev/Prod Parity Logs
Admin
Processes
Codebase Dependencies Config Backing Services
Port Binding
15. ● Codebase
○ Cada aplicação possui seu próprio codebase com controle de versão
(ex git, mercurial)
● Dependencies
○ Dependências explícitas e isoladas (ex: npm, maven, composer)
● Config
○ Guardar a configuração no ambiente (ex: credenciais, urls de serviços)
● Backing Services
○ Tratar serviços como recursos anexados
● Port Binding
○ Expor serviços via porta
15
Docker no desenvolvimento
19. Continuous Delivery é a habilidade
de colocar todas as mudanças como
novas funcionalidades,
configurações, bugfixes e
experimentos na mão do usuário
final. Rápido, seguro e de maneira
sustentável.
19
25. Feature X - Disparidade entre ambientes/serviores
25
TEST STAGING PROD
SERVER SERVER
SERVER 1 SERVER 2
SERVER 3 SERVER 4
26. "A ideia em infraestrutura como
código é que os sistemas
utilizados para rodar softwares
sejam eles mesmos, tratados
como software."
Kief Morris, @kief
26
27. Infraestructura como código
27
TEST STAGING PROD
SERVER SERVER
SERVER 1 SERVER 2
SERVER 3 SERVER 4
Especificação via DSL/Script do que deve
estar
instalado em cada servidor.