SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
1
12 Factor APPS
Docker na Cloud
e outras buzzwords
uma viagem pelo mundo mágico do hipsterismo
Sobre nós
2
Fernando Ruaro
github.com/fernandoruaro
Waldemar Neto
@waldemarnt
http://walde.co
http://bit.ly/nodejs-testavel
Meltwater
Empresa norueguesa com sede em San
Francisco, CA
Líder mundial em inteligência de
mídia
+24k clientes
+1.6k funcionários
3
Meltwater - Executive Alerts
Coleta dados de diferentes fontes
twitter, instagram, facebook, news,
ad spending, job posts
Processa mais de 100 milhões de
atividades diariamente
Analisa os dados e gera alertas em
tempo real para os usuários
4
Crawlers
Arquitetura - Executive Alerts
Twitter
Instagram
Facebook
News
Ad Spending
Job Posts
Internet
API
Internet
Pipeline de
Processamento
Internet
5
Aplicação Old School
6
Como funciona a aplicação
APP
Cria um alerta de preço
Recebe notificação de
alteração de valor
Busca dados das
lojas virtuais
7
Arquitetura
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
BANCO
8
Ambiente
● Possui três ambientes
● Possui testes
● Build e deploy é feito manualmente
● Cada desenvolvedor instala e configura na
sua máquina
TEST
STAGING
PROD
9
Replicação de ambiente
10
Ambientes homogêneos
APP
11
O que é necessário para uma aplicação ser containerizavel?
CODEBASE Dependencies Config Backing Services
Build, Release,
Run
Processes Port Binding Concurrency
Disposability Dev/Prod Parity Logs Admin Processes
12 Factor APPs
CODEBASE Dependencies Config Backing Services
Port Binding
12
Docker no desenvolvimento
● 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
13
Sugestões de leitura
https://12factor.net/
https://leanpub.com/dockerparadesenvolvedores
14
Testes e build são feitos pelos desenvolvedores
15
Integração Contínua / Continuous Integration
git push
BUILD TEST
16
Deployment é manual
17
Entrega contínua / Continuous Delivery
git push
BUILD TEST
TEST
STAGIN
G
PROD
DEPLOY
18
manual
Deploy contínuo / Continuous Deployment
git push
BUILD TEST
TEST
STAGIN
G
PROD
DEPLOY
19
Sugestões de livros
● https://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380
● https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592
● https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002
20
Aumento da demanda
21
SERVIDOR
Aumento da demanda
Internet
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
22
SERVIDOR
Aumento da demanda
Internet
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
23
SERVIDOR 1Escalar a aplicação
Internet
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
SERVIDOR 2
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
Load Balancer
24
Alguns dos módulos consomem muito mais
recursos que outros, impactando nos custos e
gestão das máquinas.
25
Aplicação
APLICAÇÃO
PAINEL DE CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
BANCO
26
MICROSERVIÇOS!!!
27
PAINEL DE
CONFIGURAÇÃO
CRAWLING
ANÁLISE
NOTIFICAÇÃO
Arquitetura de micro serviços
Mysql
Mongo
28
Como fica a arquitetura
PAINEL
Load
Bala
ncer
PAINEL
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
CRAWLER
CRAWLER CRAWLER
CRAWLER CRAWLER
ANÁLISE
ANÁLISE
ANÁLISE
Disposability
29
Livros
● http://shop.oreilly.com/product/0636920032175.do
● https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358
30
Disparidade nas Implantações
31
Feature X
TEST STAGING PROD
SERVER SERVER
SERVER 1 SERVER 2
SERVER 3 SERVER 4
32
Feature X - Disparidade entre ambientes/servidores
TEST STAGING PROD
SERVER SERVER
SERVER 1 SERVER 2
SERVER 3 SERVER 4
33
Infraestrutura como código
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
34
Infraestrutura como código
35
Disparidade entre DEV e PROD
36
PRODDesenvolvimento
Disparidade entre desenvolvimento e produção
SERVER 1 SERVER 2
SERVER 3 SERVER 4
DOCKER DOCKER DOCKER
37
PRODDesenvolvimento
Disparidade entre desenvolvimento e produção
SERVER 1 SERVER 2
SERVER 3 SERVER 4
DOCKER DOCKER DOCKER
38
DOCKER DOCKER
DOCKER DOCKER
Dev/Prod
Parity
Orquestração de Containers
MINION MINIONMINION
MASTER
ETCD
API SERVER
CONTROLLER MANAGER
SCHEDULER
DOCKER
KUBE-PROXY
KUBELET
39
Monitoramento
40
Monitoramento
PAINEL
PAINEL
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
CRAWLER
CRAWLER
CRAWLER
CRAWLER
CRAWLER
ANÁLISE
ANÁLISE
ANÁLISE
Node 1 Node 2
Node 3Node 4
41
Escrever logs nos Nodes
PAINEL
PAINEL
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
CRAWLER
CRAWLER
CRAWLER
CRAWLER
CRAWLER
ANÁLISE
ANÁLISE
ANÁLISE
Node 1
Node 2
Node 3Node 4
42
Centralizar logs
PAINEL
PAINEL
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
NOTIFICAÇ
ÃO
CRAWLER
CRAWLER
CRAWLER
CRAWLER
CRAWLER
ANÁLISE
ANÁLISE
ANÁLISE
Node 1
Node 2
Node 3Node 4
LOG SERVER
Logs
43
Ferramentas de logs conhecidas
● Elasticsearch
● Fluentd
● Logstash
● Kibana
● Graphana
● Graphite
● Greylog
● New Relic
● Data dog
44
Livros
● https://artofmonitoring.com/
45
46
Perguntas?
47

Mais conteúdo relacionado

Semelhante a 12 Factor APPS, docker na cloud e outras buzzwords

Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Marcus Garcia
 
Palestra Andrea Rigoni - SUMMIT TI 2015
Palestra Andrea Rigoni - SUMMIT TI 2015Palestra Andrea Rigoni - SUMMIT TI 2015
Palestra Andrea Rigoni - SUMMIT TI 2015Andrea Rigoni
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoValquíria Duarte D'Amato
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APPDouglas Alonso
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Controlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSControlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSRodrigo Kono
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
 
Pwa e o futuro do frontend
Pwa e o futuro do frontendPwa e o futuro do frontend
Pwa e o futuro do frontendRaphael Moraes
 
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-market
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-marketBoris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-market
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-marketAgile Trends
 
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
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013André Dias
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoDarlan Segalin
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Intelie
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebBreno Vitorino
 

Semelhante a 12 Factor APPS, docker na cloud e outras buzzwords (20)

Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
 
Ufs na nuvem gp 2017-2
Ufs na nuvem   gp 2017-2 Ufs na nuvem   gp 2017-2
Ufs na nuvem gp 2017-2
 
Palestra Andrea Rigoni - SUMMIT TI 2015
Palestra Andrea Rigoni - SUMMIT TI 2015Palestra Andrea Rigoni - SUMMIT TI 2015
Palestra Andrea Rigoni - SUMMIT TI 2015
 
Android 101: Do Plano ao Play
Android 101: Do Plano ao PlayAndroid 101: Do Plano ao Play
Android 101: Do Plano ao Play
 
Roadmap - Rodney Repullo
Roadmap - Rodney RepulloRoadmap - Rodney Repullo
Roadmap - Rodney Repullo
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APP
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
3 Telas e uma nuvem
3 Telas e uma nuvem3 Telas e uma nuvem
3 Telas e uma nuvem
 
Controlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSControlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTS
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo real
 
Pwa e o futuro do frontend
Pwa e o futuro do frontendPwa e o futuro do frontend
Pwa e o futuro do frontend
 
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-market
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-marketBoris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-market
Boris Kuszka (Red Hat) - Tecnologias para diminuir o time-to-market
 
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
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualização
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações Web
 

Mais de Waldemar Neto

Construindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSConstruindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSWaldemar Neto
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Elasticsearch Aggregations
Elasticsearch AggregationsElasticsearch Aggregations
Elasticsearch AggregationsWaldemar Neto
 
Symfony2 e Elasticsearch com FosElasticaBundle
Symfony2 e Elasticsearch com FosElasticaBundleSymfony2 e Elasticsearch com FosElasticaBundle
Symfony2 e Elasticsearch com FosElasticaBundleWaldemar Neto
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaWaldemar Neto
 
Elasticsearch de dentro para fora
Elasticsearch de dentro para foraElasticsearch de dentro para fora
Elasticsearch de dentro para foraWaldemar Neto
 
Elasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesElasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesWaldemar Neto
 
No mundo das ap is com Restful webservices
No mundo das ap is com Restful webservicesNo mundo das ap is com Restful webservices
No mundo das ap is com Restful webservicesWaldemar Neto
 
Cakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteCakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteWaldemar Neto
 
No sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaNo sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaWaldemar Neto
 
Android para padawns
Android para padawnsAndroid para padawns
Android para padawnsWaldemar Neto
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasWaldemar Neto
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsulWaldemar Neto
 
O que é esteganografia
O que é esteganografiaO que é esteganografia
O que é esteganografiaWaldemar Neto
 
Divisão de conhecimento e open source
Divisão de conhecimento e open sourceDivisão de conhecimento e open source
Divisão de conhecimento e open sourceWaldemar Neto
 

Mais de Waldemar Neto (17)

Construindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSConstruindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJS
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Elasticsearch Aggregations
Elasticsearch AggregationsElasticsearch Aggregations
Elasticsearch Aggregations
 
Symfony2 e Elasticsearch com FosElasticaBundle
Symfony2 e Elasticsearch com FosElasticaBundleSymfony2 e Elasticsearch com FosElasticaBundle
Symfony2 e Elasticsearch com FosElasticaBundle
 
ELK introduction
ELK introductionELK introduction
ELK introduction
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
 
Elasticsearch de dentro para fora
Elasticsearch de dentro para foraElasticsearch de dentro para fora
Elasticsearch de dentro para fora
 
Elasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queriesElasticsearch shards, index, filters and queries
Elasticsearch shards, index, filters and queries
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
No mundo das ap is com Restful webservices
No mundo das ap is com Restful webservicesNo mundo das ap is com Restful webservices
No mundo das ap is com Restful webservices
 
Cakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteCakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita gente
 
No sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglotaNo sql no mundo da persistencia poliglota
No sql no mundo da persistencia poliglota
 
Android para padawns
Android para padawnsAndroid para padawns
Android para padawns
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsul
 
O que é esteganografia
O que é esteganografiaO que é esteganografia
O que é esteganografia
 
Divisão de conhecimento e open source
Divisão de conhecimento e open sourceDivisão de conhecimento e open source
Divisão de conhecimento e open source
 

12 Factor APPS, docker na cloud e outras buzzwords