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

FISL2018 - Mapeando 1 milhão de recursos em uma...

FISL2018 - Mapeando 1 milhão de recursos em uma Cloud.

A Globo.com proporciona uma vasta quantidade de opções para os times de desenvolvimento criar e fazer deploy um projeto. Dando liberdade para os desenvolvedores escolherem arquitetura, linguagem, DB, etc.

Para proporcionar todos esses recursos, as equipes de infraestrutura buscam, automatização dos fluxos, processos e configurações, e assim garantir uma entrega rápida da infraestrutura para os times de desenvolvimento. Por pensar dessa forma, temos Everything as a Service dos recursos de infraestrutura, o que possibilita que entreguemos Storage, Redes, ACL, Firewall, Banco de Dados, DNS, Dominios, VMs, Containers, etc, como serviços. Somando os recursos gerenciados, facilmente passa o alcança o patamar de centenas de milhares de itens e relacionamentos entres os sistemas

Mesmo com a automatização não havia uma forma sistemática de entender como elementos TI se relacionavam. Para resolver esse gargalo que criamos o Globo Map, uma ferramenta open source e extensível, usada para fazer esse mapeamento.

Ederson Brilhante

July 13, 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. Servidor Virtual Banco de Dados API Servidor Físico Icon made

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

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

    Dados Icon made by Freepik from www.flaticon.com
  8. 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
  9. Premissas Redução de tempo de resposta.
 Serviços e acessos. Pró

    atividade e agilidade. Passagem de conhecimento atualizado. Sem necessidade de especialistas GloboMap
  10. 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
  11. 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
  12. 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
  13. 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
  14. Arquitetura Visão Geral GloboMap API GloboMap Loader Generic Client GloboMap

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

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

    by Freepik from www.flaticon.com External Driver
  17. 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
  18. 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
  19. GloboMap API Graph Database Auth Cache Auth System GloboMap API

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

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

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

    GloboMap Loader Icon made by Freepik from www.flaticon.com
  23. 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
  24. 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
  25. 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
  26. 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