Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mapeando 1 milhão de recursos em uma Cloud

Mapeando 1 milhão de recursos em uma Cloud

Como conseguimos mapear 1 milhão de recursos da Cloud da Globo.com espalhados em dezenas de sistemas num ambiente Everything as a Service

Ederson Brilhante

May 25, 2018
Tweet

More Decks by Ederson Brilhante

Other Decks in Technology

Transcript

  1. Agenda 1. Problemas da globo.com 2. O que é o

    GloboMap? 3. Arquitetura 1. Topologia 2. APIS e contratos 3. Dados Técnicos 4. Hands On
  2. Timeline Infra Globo.com 2013 2009 2008 Testes com IaaS e

    PaaS Inicio da Infra as a Service 2017 2014 Ambiente EaaS Cloud em Produção Deploy de recursos de Rede Evolução
  3. Problema Os relacionamentos entre as entidades de TI da Globo.com

    não são sistematicamente conhecidos, o que impossibilita utilizá-los de maneira efetiva e agregar valor a empresa e para os clientes. Icon made by Freepik from www.flaticon.com
  4. Exemplos Linhas ACL não usadas Icon made by Freepik from

    www.flaticon.com 10.0.0.1 10.2.0.1 10.1.0.1
  5. Exemplos Linhas ACL não usadas Icon made by Freepik from

    www.flaticon.com 10.0.0.1 10.2.0.1 10.1.0.1
  6. Exemplos Linhas ACL não usadas Icon made by Freepik from

    www.flaticon.com 10.0.0.1 10.2.0.1 10.1.0.1
  7. Servidor Virtual Banco de Dados API Servidor Físico Icon made

    by Freepik from www.flaticon.com Análise de Impacto Exemplos
  8. Servidor Virtual Banco de Dados API Servidor Físico Icon made

    by Freepik from www.flaticon.com Análise de Impacto Exemplos
  9. Servidor Virtual Banco de Dados API Servidor Físico Icon made

    by Freepik from www.flaticon.com Análise de Impacto Exemplos
  10. Servidor Virtual Banco de Dados API Servidor Físico Icon made

    by Freepik from www.flaticon.com Análise de Impacto Exemplos
  11. Servidor Virtual Banco de Dados API Servidor Físico Icon made

    by Freepik from www.flaticon.com Análise de Impacto Exemplos
  12. Análise de Impacto Servidor 2 Aplicação Servidor 1 API Banco

    de Dados Icon made by Freepik from www.flaticon.com Exemplos
  13. Casos de Uso Análise de Impacto Aplicação API Banco de

    Dados Icon made by Freepik from www.flaticon.com
  14. Solução Mapeamento do ambiente de TI aumenta a eficácia da

    Globo.com na identificação e prevenção de problemas, análise de impacto, redução de custos, tomada de decisões, etc
  15. Premissas Redução de tempo de resposta.
 Serviços e acessos. Pró

    atividade e agilidade. Passagem de conhecimento atualizado. Sem necessidade de especialistas GloboMap
  16. Plataforma que mapeia de forma automática e integrada as relações

    entre entidades de TI da Globo.com e as disponibiliza através de APIs e Interfaces. GloboMap - o que é GloboMap servidor_fisico_1 poolx.globo.com vip.globo.com vip.globo.com servidor_fisico_1 servidor_fisico_2 servidor_fisico_3 servidor_fisico_4 servidor_fisico_1 servidor_fisico_2 servidor_fisico_3 servidor_fisico_4 servidor_fisico_1 10.0.0.0/24 10.2.0.0/24 vip.globoi.com
  17. Entidade de TI Qualquer elemento de TI a ser mapeado

    relevante para a globo.com • Componente físico (ex: Servidor, Rack) • Virtual (ex: VM, PaaS) • Lógico(ex: Object Storare, Balaceamento L7) • Permissão e Conectividade (ACL, LDAP) • Governança (Processo, Serviço de Negócio) • … GloboMap - o que é servidor_fisico
  18. GloboMap - o que é Camadas de Visualização Agrupamento de

    Entidades de TI e seus relacionamentos em visões que façam sentido para a globo.com • Uma Entidade de TI pode participar de uma ou mais Camadas. • As relações entre as Entidades de TI pertencem a uma única Camada servidor_fisico
  19. GloboMap - o que é Camadas de Visualização Agrupamento de

    Entidades de TI e seus relacionamentos em visões que façam sentido para a globo.com • Uma Entidade de TI pode participar de uma ou mais Camadas. • As relações entre as Entidades de TI pertencem a uma única Camada servidor_fisico servidor_fisico servidor_fisico
  20. Arquitetura Visão Geral GloboMap API GloboMap Loader Generic Client GloboMap

    UI Icon made by Freepik from www.flaticon.com External Driver
  21. Escrita Arquitetura Generic Client GloboMap UI GloboMap API GloboMap Loader

    Icon made by Freepik from www.flaticon.com External Driver
  22. External Driver Arquitetura - Escrita API/Serviço GloboMap Loader Icon made

    by Freepik from www.flaticon.com External Driver
  23. Loader Job Manager Loader Queue Loader API External Driver Arquitetura

    - Escrita GloboMap Loader Icon made by Freepik from www.flaticon.com
  24. Loader Job Manager Loader Queue Loader API External Driver Core

    Loader Arquitetura - Escrita GloboMap Loader Icon made by Freepik from www.flaticon.com
  25. Loader Job Manager Loader Queue Loader Driver Loader API External

    Driver Core Loader Arquitetura - Escrita GloboMap Loader Icon made by Freepik from www.flaticon.com
  26. Loader Job Manager Loader Queue Loader Driver Loader API External

    Driver GloboMap API Core Loader Arquitetura - Escrita GloboMap Loader Icon made by Freepik from www.flaticon.com
  27. Loader Job Manager Loader Queue Loader Driver Loader API External

    Driver GloboMap API Core Loader Arquitetura - Escrita GloboMap Loader Icon made by Freepik from www.flaticon.com
  28. ACS Queues Auth Cache Napi Queue ACS Driver Core Loader

    Arquitetura - Escrita Loader GloboMap Loader Job Manager Loader API GloboMap API Loader Queue Auth System Icon made by Freepik from www.flaticon.com External Driver Loader Driver Napi Driver
  29. GloboMap API Graph Database Auth Cache Auth System GloboMap API

    Arquitetura - Escrita Icon made by Freepik from www.flaticon.com
  30. Leitura Arquitetura External Driver Generic Client GloboMap UI GloboMap API

    GloboMap Loader Icon made by Freepik from www.flaticon.com
  31. Leitura Arquitetura External Driver Generic Client GloboMap UI GloboMap API

    GloboMap Loader Icon made by Freepik from www.flaticon.com
  32. Leitura Arquitetura External Driver Generic Client GloboMap UI GloboMap API

    GloboMap Loader Icon made by Freepik from www.flaticon.com
  33. Contrato do GloboMap API • Document: • Registro de um

    recurso físico ou lógico. • Edge: • Edge é um registro que descreve a ligação entre 2 documentos. Arquitetura
  34. Contrato do GloboMap API • Document: • Registro de um

    recurso físico ou lógico. • Edge: • Edge é um registro que descreve a ligação entre 2 documentos. { "id": "123", "name": "abc", "provider": "xxx", "timestamp": 0, "properties": { "key": "value" } } Document Arquitetura
  35. Contrato do GloboMap API • Document: • Registro de um

    recurso físico ou lógico. • Edge: • Edge é um registro que descreve a ligação entre 2 documentos. { "id": "123", "name": "abc", "provider": "xxx", "timestamp": 0, "properties": { "key": "value" } } Document { "id": "123", "name": "abc", "provider": "xxx", "timestamp": 0, "from": "coll1/xxx_1", "to": "coll2/xxx_1", "properties": { "key": "value" } } Edge Arquitetura
  36. Contrato do Loader API { "action": "CREATE", "collection": "name", "type":

    "collections", "element": {<document>} } CREATE Arquitetura
  37. Contrato do Loader API { "action": "CREATE", "collection": "name", "type":

    "collections", "element": {<document>} } CREATE { "action": “UPDATE", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } UPDATE Arquitetura
  38. Contrato do Loader API { "action": "CREATE", "collection": "name", "type":

    "collections", "element": {<document>} } CREATE { "action": “UPDATE", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } UPDATE { “action": “PATCH", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } PATCH Arquitetura
  39. Contrato do Loader API { "action": "CREATE", "collection": "name", "type":

    "collections", "element": {<document>} } CREATE { "action": “UPDATE", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } UPDATE { “action": “PATCH", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } PATCH { "action": “DELETE”, "collection": "name", "type": "collections", "key": “provider_id" } DELETE Arquitetura
  40. Contrato do Loader API { "action": "CREATE", "collection": "name", "type":

    "collections", "element": {<document>} } CREATE { "action": “UPDATE", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } UPDATE { “action": “PATCH", "collection": "name", "type": "collections", "key": "provider_id", "element": {<document>} } PATCH { "action": “DELETE”, "collection": "name", "type": "collections", "key": “provider_id" } DELETE { "action": "CREATE", "collection": "talk", "type": "collections", "element": { "id": "1", "name": "Mapping 1 million data", "provider": "globocom", "timestamp": 1501543772, "properties": { "description": "Mapping 1 million data" } } } CREATE Arquitetura
  41. Dados Técnicos Arquitetura ‣ Python3.6 + Flask ‣ Docker container

    (Tsuru PaaS) ‣ Reverse Proxy GloboMap API ‣ Virtual IP ‣ VMs ‣ 4 CPU ‣ 6 GB ‣ RedHat 7 Loader Queue ‣ Virtual IP ‣ VMs ‣ 4 CPU ‣ 16 GB ‣ RedHat 7 Graph Database ‣ Python3.6 ‣ Docker container (Tsuru PaaS) ‣ 4 processos - Loader Driver ‣ 1 processos - Outros Drivers GloboMap Loader ‣ Python3.6 + Flask ‣ Docker container (Tsuru PaaS) ‣ Reverse Proxy Loader API
  42. GloboMap API - https://github.com/globocom/ globomap-api GloboMap UI - https://github.com/globocom/ globomap-ui

    Core Loader - https://github.com/globocom/ globomap-core-loader Hands on - https://github.com/edersonbrilhante/ globomap-hands-on [email protected] Sobre o projeto