Fase I - Estudo


Título da Idéia

Telemetria para equipamentos da Juniper


Objetivos

Utilização de um push model (telemetria) para aquisição de informações dos roteadores de borda da rede Algar. Dentre os dois possíveis métodos de implementação da telemetria, escolheu-se por utilizar o stream de dados adquiridos pelos "natives sensors", utilizando, assim, um hardware dedicado à aquisição destes dados, sem sobrecarregar e/ou utilizar o processamento do roteador. Deste modo, é possível escalar a aplicação aos roteados de borda, em algo próximo de uma aplicação em tempo real, sem prejudicar o funcionamento da rede.


Conceito


Telemetria

Com o aumento exponencial de componentes das rede de internet, foi necessário desenvolver um método que apresentasse um melhor desempenho para a análise do que é chamado de “saúde da rede” (ou network’s health). Os métodos tradicionais de gerenciamento de redes consiste da utilização de protocolos denominados pull model, como por exemplo SNMP, CLI e Syslog.

Os modelos do tipo pull limitam em muito a escalabilidade, pois para obter as informações dos dispositivos que compõem a rede é necessário que seja feito o requerimento (request) dessas informações. Estes métodos não são escaláveis caso se queira, por exemplo, obter dados em tempo real (ou uma aplicação próxima ao tempo real), ou caso a rede possua uma quantidade muito grande de componentes.

A telemetria ultrapassa esses limites baseando-se no push model que entregará dados de modo assíncrono, eliminando a necessidade do pulling. Neste caso, faz-se o request da informação apenas uma vez para o dispositivo da rede que realizará stream dos dados em um intervalo de tempo configurado, de modo a obter-se os dados praticamente em tempo real.



Junos Telemetry Interface (JTI)

Nos dispositivos da Juniper, é possível fazer a configuração de sensors (ou sensores) que coletam e exportam os dados de vários tipos de recursos pertencentes ao dispositivo de rede, como de interfaces físicas, utilização de memória, temperatura, etc. Dois modelos de dados são possíveis, sendo que cada um utiliza um diferente tipo de transporte.

Utilizando o UDP, os natives sensors exportam dados próximos à fonte, como da unidade de processamento de rede (NPU). O modelo de dados é definido pela Juniper Networks, que é aberto e extensível.

Por meio de chamadas de procedimento remoto gRPC (gRPC) que exportam dados por meio do mecanismo de roteamento. O modelo de dados é definido pelo OpenConfig, que suporta o uso de modelos de dados vendor-neutral para configurar e gerenciar a rede. O OpenConfig para o Junos OS suporta os modelos de dados YANG. Para plataformas que estão rodando uma versão do Junos OS baseada apenas em um kernel atualizado do FreeBSD, você deve instalar um pacote separado chamado Network Agent que funciona como um servidor gRPC e termina as interfaces RPC. Para todas as outras versões do Junos OS, a funcionalidade do Network Agent está incorporada no software. Você também deve instalar o módulo OpenConfig para o Junos OS e os modelos YANG.




Native Sensors

Os native sensors (ou sensores nativos) exportam dados utilizando o protocolo UDP. Os dados do sensor são estruturados em uma mensagem protobuf (um método criado para serialização de dados estruturados). Este método foi desenvolvido pelo Google e disponibiliza um gerador de códigos para várias linguagens sendo este de código aberto. O método serve como base para uma chamada de procedimento remoto (RPC - remote procedure call). Para realizar a decodificação dos arquivos gerados, é necessário baixar, no site da Juniper, arquivos .protos relacionados com a série e a versão do Junos OS do dispositivo no qual a telemetria será implementada.

Para monitorar um recurso específico de um dispositivo, é necessário configurar um sensor. A configuração de cada sensor depende de três componentes principais:

Sensor profile - habilita o monitoramento de um dado recurso do dispositivo e permite que seja setado determinados parâmetros como o servidor para o qual serão enviados os dados de telemetria;

Export profile - especifica os atributos para o processo de exportação dos dados coletados, como o protocolo de transporte a ser usado (normalmente UDP) e o intervalo no qual os dados são coletados;

Streaming server profile - especifica o servidor para coleta de dados e parâmetros relacionados, incluindo o endereço IP e o número da porta de destino.




Configurando um Export profile

Um export profile (ou perfil de exportação) define os parâmetros do processo de exportação de dados gerados através da Junos Telemetry Interface. Deve-se configurar pelo menos um perfil de exportação, mas é possível a configuração de vários perfis de exportação. Cada perfil de exportação pode ser associado a vários perfis de sensores. No entanto, é possível associar apenas um perfil de exportação a um perfil de sensor específico.


1. Especificar um nome para o perfil de exportação

[edit services analytics]

user@host# set export-profile name

2. Especificar o endereço de IP da fonte dos pacotes que serão exportados

[edit services analytics export-profile name]

user@host# set local-address ip-address

3. Especificar o número da porta utilizado para os pacotes exportados

[edit services analytics export-profile name]

user@host# set local-port number

4. Especificar o intervalo, em segundos, no qual o sensor gerará os dados de telemetria

[edit services analytics export-profile name]

user@host# set reporting-rate seconds

5. Especificar o formato que definirá a estrutura dos dados exportados

[edit services analytics export-profile name]

user@host# set format gpb

6. Especificar o protocolo de transporte que carregará os dados de telemetria no pacote IP

[edit services analytics export-profile name]

user@host# set transport protocol-name

7. (Opcional) Especificar o valor do DiffServ code point (DSCP) atribuído aos pacotes exportados

[edit services analytics export-profile name]

user@host# set dscp value

8. (Opcional) Especificar a forwarding class para atribuir aos pacotes exportados

[edit services analytics export-profile name]

user@host# set forwarding-class class-name

9. (Opcional) (Apenas roteadores da série MX e Junos OS Release 17.3R1 ou mais recentes) Especificar uma prioridade de perda de pacotes para atribuir aos pacotes exportados

[edit services analytics export-profile name]

user@host# set loss-priority (low | high | medium-low | medium-high)




Configurando um Streaming Server Profile

Um streaming server profile (ou perfil de servidor) define os parâmetros do servidor que coleta dados de telemetria exportados. Pode-se definir mais de um perfil de servidor. Também é possível associar o mesmo perfil de servidor a mais de um perfil de sensor. A partir do Junos OS Release 15.1F6, é possível associar mais de um servidor a um sensor específico.

1. Especificar o nome do servidor streaming

[edit services analytics]

user@host# set streaming-server server-name

2. Especificar o endereço IP de destino para os pacotes exportados

[edit services analytics streaming-server server-name]

user@host# set remote-address ip-address

3. Especificar uma porta de destino para os pacotes exportados

[edit services analytics streaming-server server-name]

user@host# set remote-port number




Configurando um Sensor Profile

Um sensor profile (ou perfil de sensor) define os parâmetros do recurso do sistema para monitorar e transmitir dados. Pode-se ativar apenas um recurso do sistema para monitorar cada perfil de sensor. Configure um perfil de sensor diferente para cada recurso do sistema que você deseja monitorar. É possível, no entanto, configurar mais de um sensor para monitorar o mesmo recurso do sistema. Por exemplo, pode-se querer configurar parâmetros diferentes para exportar dados para o mesmo recurso do sistema.

1. Especificar o nome do sensor

[edit services analytics]

user@host# set sensor sensor-name

2. Especificar o recurso do dispositivo que será monitorado

[edit services analytics sensor sensor-name]

user@host# set resource resource-string-identifier

3. (Opcional) Especificar uma expressão regular para filtrar os dados do recurso do dispositivo que foi configurado no passo acima para ser monitorado

[edit services analytics sensor sensor-name]

user@host# set resource-filter regular-expression

4. Especificar o nome de um perfil de exportação configurado no nível de hierarquia [edit export-profile profile-name] para associar ao perfil do sensor. Este perfil de exportação define os parâmetros para exportar dados de telemetria.

[edit services analytics sensor sensor-name]

user@host# set export-name export-profile-name

5. Especificar o nome de um nome de servidor de streaming configurado no nível de hierarquia [edit services analytics streaming-server server-name] para coletar dados exportados.

[edit services analytics sensor sensor-name]

user@host# set streaming-server server-name



Verificar a configuração do Junos Telemetry Interface Sensor

No modo de configuração, confirme sua configuração, digitando o comando show services analytics. Se a sua saída não exibir a configuração pretendida, repita as instruções neste procedimento de configuração para corrigi-la.

Depois de confirmar a configuração, verifique se o sensor está ativado emitindo o comando operacional show agent sensors.

user@host> show agent sensors




Comandos básicos CLI (command line-interface)

A interface da linha de comandos (CLI) do sistema operacional Junos (Junos OS) é a interface do software que você usa para acessar um dispositivo executando o Junos OS, seja a partir do console ou através de uma conexão de rede.

O CLI do Junos OS tem dois modos:

Modo operacional - Este modo exibe o status atual do dispositivo. No modo operacional, você insere comandos para monitorar e solucionar problemas do Junos OS, dispositivos e conectividade de rede.

user@host> o modo operacional pode ser identificado pelo caractere “>” após o host.

Modo de configuração - este modo permite configurar o dispositivo. Nesse modo, você insere instruções para configurar todas as propriedades do dispositivo, incluindo interfaces, informações gerais de roteamento, protocolos de roteamento, acesso do usuário e várias propriedades de sistema e hardware.

user@host# o modo de configuração pode ser identificado pelo caractere “#” após o host.

Toda a configuração dos native sensors é feita através de comandos CLI. Abaixo serão colocados os comandos principais utilizados.

Como mudar entre os modos de configuração e de operação: 1. Assim que você entra no roteador e digita o comando cli, você estará em modo de operação. 2. Para entrar no modo de configuração, digite o comando configure ou o comando de edit no modo de operação da CLI. Por exemplo:

user@host> configure

Entering configuration mode

[edit] user@host#

3. É possível retornar ao modo operacional de uma das seguintes maneiras:

3.1 commit the configuration and exit:

[edit] user@host# commit and-quit

commit complete

Exiting configuration mode

user@host>

3.2 exit without committing:

[edit]

user@host# exit

Exiting configuration mode

user@host>

Fonte: [1]

Características 


Informe sobre as particularidades, aspectos e atributos desta idéia.



Estudo Dirigido


Coloque aqui o plano de estudos bem como as possíveis fontes de informação.


Fase II - Ensino


Conteúdo

Desenvolva um conteúdo que possa transmitir o conhecimento adquirido para outros
Crie um material (Wiki, PDF, PPT, ...) que possa ser armazenado e facilmente atualizável


Apresentação

Apresente ao grupo (reunião, EAD, Blog, ...)
Publique aqui


Metodologia


Descrevas as metodologias usadas. Alguns exemplos:
Estratégia de Job Rotation
Estudos básicos para conhecimento do potencial
Estudos básicos para entendimento sobre o problema
Estudos para dar base aos pesquisadores
Benchmarking com empresas estrangeiras 
Aceleradoras de empresas
Adoção de novas tecnologias
Utilização da proposta de soluções Open-source
Priorização no desenvolvimento interno
Foco na não dependência de fornecedores
Prática de formação dos talentos necessários 


Fase III - Exemplo de Caso de Negócio


Benefícios para quem for oferecer esta solução

    Descrever em tópicos os benefícios que uma pessoa ou uma empresa podem obter: ganhos, receitas, novos negócios, novos produtos, novas parcerias



Benefícios para o usuário

    Descrever em tópicos os benefícios para os usuários desta solução.
    Pode se inspirar no Canvas.


Direcionadores chave para esta iniciativa

    Descrever em tópicos o que esta iniciativa pode proporcionar



Possíveis modelos de negócios

    Descrever em tópicos os possíveis modelos de negócios

Business Case

    Descrever um exemplo de negócio que permita avaliar a solução comercialmente


Alinhamento com Lei do Bem


  • Projeto possui algum elemento tecnologicamente novo ou inovador?
Elemento tecnologicamente novo ou inovador pode ser entendimento como o avanço tecnológico pretendido pelo projeto, ou a hipótese que está sendo testada


  • Projeto possui barreira ou desafio tecnológico superável?
Barreira ou desafio tecnológico superável pode ser entendido como aquilo que dificulta o atingimento do avanço tecnológico pretendido, ou dificulta a comprovação da hipótese


  • Projeto utiliza metodologia/método para superação da barreira ou desafio tecnológico?
Metodologia/método para superação da barreira ou desafio tecnológico pode ser entendido como aqueles atividades que foram realizadas para superação da barreira ou do desafio tecnológico existente no projeto


  • Projeto é desenvolvido em parceira com alguma instituição acadêmica, ICT ou startup?
Se sim, o desenvolvimento tecnológico é executado por associado ou por alguma empresa terceira? qual o nome da empresa? 
Anexar cópia do contrato


Fase IV - Protótipo orientado ao Negócio


Escopo


Explique o escopo deste protótipo


Product Backlog


Descreva os requisitos deste projeto


Limitações


Informe sobre as limitações técnicas, comerciais, operacionais, recursos, etc.


PoC


Desenvolva um PoC (Proof of Concept)


Detalhamento Técnico


Descreva especificamente os aspectos técnicos desta pesquisa





Cronograma Macro


Histórico



Pesquisadores

  • Adriano Ghenov Pimenta
  • Anserson Testi
  • Raoni Exaltação Masson
  • Fabio Sabai
  • Gustavo Gardusi
  • Gustavo Velasco
  • Stephanas Schaden