12 Factor APPS, docker na cloud e outras buzzwords

211 visualizações

Publicada em

Palestra ministrada junto com Fernando Ruaro no DevOpsDays Porto Alegre 2017

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
211
No SlideShare
0
A partir de incorporações
0
Número de incorporações
11
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

12 Factor APPS, docker na cloud e outras buzzwords

  1. 1. 1 12 Factor APPS Docker na Cloud e outras buzzwords uma viagem pelo mundo mágico do hipsterismo
  2. 2. Sobre nós 2 Fernando Ruaro github.com/fernandoruaro Waldemar Neto @waldemarnt http://walde.co http://bit.ly/nodejs-testavel
  3. 3. 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
  4. 4. 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
  5. 5. Crawlers Arquitetura - Executive Alerts Twitter Instagram Facebook News Ad Spending Job Posts Internet API Internet Pipeline de Processamento Internet 5
  6. 6. Aplicação Old School 6
  7. 7. 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
  8. 8. Arquitetura APLICAÇÃO PAINEL DE CONFIGURAÇÃO CRAWLING ANÁLISE NOTIFICAÇÃO BANCO 8
  9. 9. 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
  10. 10. Replicação de ambiente 10
  11. 11. Ambientes homogêneos APP 11
  12. 12. 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
  13. 13. 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
  14. 14. Sugestões de leitura https://12factor.net/ https://leanpub.com/dockerparadesenvolvedores 14
  15. 15. Testes e build são feitos pelos desenvolvedores 15
  16. 16. Integração Contínua / Continuous Integration git push BUILD TEST 16
  17. 17. Deployment é manual 17
  18. 18. Entrega contínua / Continuous Delivery git push BUILD TEST TEST STAGIN G PROD DEPLOY 18 manual
  19. 19. Deploy contínuo / Continuous Deployment git push BUILD TEST TEST STAGIN G PROD DEPLOY 19
  20. 20. 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
  21. 21. Aumento da demanda 21
  22. 22. SERVIDOR Aumento da demanda Internet APLICAÇÃO PAINEL DE CONFIGURAÇÃO CRAWLING ANÁLISE NOTIFICAÇÃO 22
  23. 23. SERVIDOR Aumento da demanda Internet APLICAÇÃO PAINEL DE CONFIGURAÇÃO CRAWLING ANÁLISE NOTIFICAÇÃO 23
  24. 24. 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
  25. 25. Alguns dos módulos consomem muito mais recursos que outros, impactando nos custos e gestão das máquinas. 25
  26. 26. Aplicação APLICAÇÃO PAINEL DE CONFIGURAÇÃO CRAWLING ANÁLISE NOTIFICAÇÃO BANCO 26
  27. 27. MICROSERVIÇOS!!! 27
  28. 28. PAINEL DE CONFIGURAÇÃO CRAWLING ANÁLISE NOTIFICAÇÃO Arquitetura de micro serviços Mysql Mongo 28
  29. 29. 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
  30. 30. Livros ● http://shop.oreilly.com/product/0636920032175.do ● https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358 30
  31. 31. Disparidade nas Implantações 31
  32. 32. Feature X TEST STAGING PROD SERVER SERVER SERVER 1 SERVER 2 SERVER 3 SERVER 4 32
  33. 33. Feature X - Disparidade entre ambientes/servidores TEST STAGING PROD SERVER SERVER SERVER 1 SERVER 2 SERVER 3 SERVER 4 33
  34. 34. 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
  35. 35. Infraestrutura como código 35
  36. 36. Disparidade entre DEV e PROD 36
  37. 37. PRODDesenvolvimento Disparidade entre desenvolvimento e produção SERVER 1 SERVER 2 SERVER 3 SERVER 4 DOCKER DOCKER DOCKER 37
  38. 38. 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
  39. 39. Orquestração de Containers MINION MINIONMINION MASTER ETCD API SERVER CONTROLLER MANAGER SCHEDULER DOCKER KUBE-PROXY KUBELET 39
  40. 40. Monitoramento 40
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. Ferramentas de logs conhecidas ● Elasticsearch ● Fluentd ● Logstash ● Kibana ● Graphana ● Graphite ● Greylog ● New Relic ● Data dog 44
  45. 45. Livros ● https://artofmonitoring.com/ 45
  46. 46. 46
  47. 47. Perguntas? 47

×