Linha 185: Linha 185:


== Benefícios para o usuário  ==
== Benefícios para o usuário  ==
*Facilidade de acesso a informação a respeito da rede
*Otimização de esforço e tempo
*Análise rápida para soluções rápidas
*Configurações de maneira remota


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


<br>  
<br>


== Direcionadores chave para esta iniciativa  ==
== Direcionadores chave para esta iniciativa  ==

Edição das 18h37min de 25 de fevereiro de 2019

Título da Idéia

  • Portal de coletas


Objetivos

  • Criar uma solução que facilite a visualização de informações sobre os equipamentos e também realize configurações automáticas.
  • Criação de túneis LSP entre os roteadores.
  • Representar toda a planta da empresa por meio de técnicas como Graph Theory, Network Flow e Parallel computing.
  • Criar uma API capaz de executar uma série de comandos pré definidas em um conjunto de equipamentos, baseado na autenticação de uma lista de usuários.


Conceito


Uma rede de telecomunicações é composta por diversos equipamentos interligados, formando uma estrutura que pode ser representada por um grafo. Essa complexa estrutura é capaz de enviar e receber milhares de informações, as quais podem ser utilizadas em diversas aplicações, porém ainda requer um esforço desnecessário para obter, processar e utilizar.


Ao esquematizar essa rede como um grafo, é possível utilizá-la da forma que for mais conveniente para cada objetivo, seja em forma de backups, ocorrências, monitoramento, etc.


Para isso, é necessário que exista um sistema capaz de percorrer por todos os mínimos detalhes de forma eficaz e precisa, caso contrário, seria uma ferramenta inviável.


Fase I - Estudo


Estudo Dirigido


  • Redes de computadores
    • MPLS (Multiprotocol Label Switching)
    • Túneis LSP (Label-Switched Paths)
    • SSH
    • Telnet
    • SNMP
    • Equipamentos
      • Juniper
      • Cisco
      • Huawei
  • Teoria dos Grafos
    • DFS (Depth-first search)
    • BFS (Breadth-first search)
    • Conectividade
    • Ciclo
    • Caminho
    • Subgrafo
    • Coloração
    • Dijkstra
    • Bipartição
    • Árvores
    • Grafos dinâmicos
    • Fluxo máximo
      • Ford-Fulkerson
      • Edmonds-Karp
      • Dinic
      • Min cost max flow
  • Programação:
    • Raciocínio lógico (maratonas de programação)
    • Estruturas de dados
    • Programação dinâmica
    • Processamento paralelo
    • Processamento remoto
  • Interface Gráfica:
    • Gephi
  • Inteligência artificial
    • Redes neurais
    • Deep Learning
    • Machine Learning


Esboços



Fase II - Ensino


Conteúdo

Basicamente o projeto se baseia no conceito de realizar o acesso a uma interface gráfica, em que, a mesma contém informações a respeito de todos os equipamentos que constituem o backbone da rede Algar. Informações essas, que antes não eram tão simples a sua visualização, tornando assim a aplicação bastante importante, justamente pelo fato de ter em si um banco de dados com as principais informações dos equipamentos e dessa forma, essas informações serão filtradas da tabela de acordo com o que for solicitado pelo usuário da interface.

O projeto se constitui basicamente da estrutura mostrada logo abaixo:


A aplicação utiliza de uma tabela base para acessar todas as informações necessárias a respeito dos equipamentos no backbone da rede, como por exemplo, a cidade onde se encontra, o site a qual está associado, seu determinado fabricante, seu respectivo IP e o seu modelo específico.

O projeto trará como resultado uma aplicação que por meio de uma interface com o usuário, o mesmo terá acesso a informações de maneira bastante otimizada e consequentemente um acesso facilitado ao usuário no backbone da rede. Segue a seguir um template da própria aplicação a ser desenvolvida:


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

Arquivo:FlowGraphApresentação.pdf

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


Metodologia



  • Scrum


Scrum é uma metodologia ágil para gestão e planejamento de projetos. No scrum os projetos são divididos em ciclos, com determinado tempo de execução, são os chamados sprints. As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog.


Essa metodologia é marcada por reuniões constantes e com funções diversificadas dentro do projeto ao todo, como por exemplo as daily scrum, que são reuniões rápidas e diárias entre os participantes do projeto, com o intuito de especificar o que cada um têm feito e caso possui algum impedimento para execução do mesmo; outra reunião é a chamada sprint planning meeting, na qual se trata de uma priorização do que deve ser feito e também o planejamento das outras atividades para os próximos sprints, levando sempre em conta o que está especificado no Product Backlog; e por último e não menos importante temos a chamada sprint review meeting, onde a equipe apresenta todas as funcionalidades implementadas das sprints que decorrem do projeto.


Na metodoligia scrum, os participantes do projeto se dividem de acordo com a seguinte forma: Cliente, Product Owner, Scrum Master, Time Scrum.


  • Trello

Trello é uma ferramenta conhecida por auxiliar no gerenciamento de projetos por meio de listas que se mostram extremamente versáteis e que são facilmente alteradas de acordo com a necessidade do usuário. Trata-se de um site que possui um layout específico capaz de dispor no mesmo informações necessárias relacionadas ao serviço. A aplicação é disposta por diferentes boards, que diz respeito a quadros que contém especificidades do projeto, dividos em o que se deve entregar, o que está sendo feito e o que já foi entregue. Um exemplo do utilizado em nosso projeto pode ser visto logo em seguida:



A interface do trello é um ambiente muito útil para o trabalho em equipe, em que, os quadros são compartilhados com todos os membros inseridos no projeto, e cada um recebe marcações em diversos cartões com respeito as suas respectivas funções para que o objetivo possa ser alcançado.


  • Design Sprint


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

  • Praticidade na visualização de todos os equipamentos da rede backbone
  • Atualização em tempo real dos dados da rede
  • Possibilidade de inserção de novos equipamentos de maneira otimizada
  • Conhecimento mais rápido a respeito dos elementos de rede
  • Facilidade de acesso para mostrar a viabilidade do produto para quem for utilizar


    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

  • Facilidade de acesso a informação a respeito da rede
  • Otimização de esforço e tempo
  • Análise rápida para soluções rápidas
  • Configurações de maneira remota


    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


Barreiras encontradas


    Aponte aqui quais foram os principais obstáculos encontrados para o desenvolvimento desta solução


Fase IV - Protótipo orientado ao Negócio


Escopo


Explique o escopo deste protótipo


Product Backlog


  • https://docs.google.com/spreadsheets/d/1uMzWBxdoGnWcQ47jG-44_XluX4UdHEskFHr6UV0bHbU/edit?usp=sharing
    • 01 Estudar Teoria dos Grafos - Depth-first search, Breadth-first search, Subgrafos, Conectividade, Network Flow
    • 02 Estudar Gephi - Ferramenta utilizada como interface gráfica para representar os grafos
    • 03 Estudar Processamento Paralelo - Executar comandos simultaneamente em diversos equipamentos
    • 04 Estudar MPLS (Multiprotocol Label Switching) - Um dos protocolos utilizado para comunicação entre os equipamentos de transporte
    • 05 Estudar LSP (Label-switched path) - Criação de túneis entre roteadores (como arestas em um grafo)
    • 06 Estudar acesso remoto a sistemas - Executar comandos via SSH / Telnet / SNMP
    • 07 Estudar lógica de programação - Melhor conhecimento lógico ajuda em diversas atividades, recomendo praticar em maratonas de programação
    • 08 Estudar Github - Aprender como importar, exportar e usar o sistema git para versionamento. No caso utilizar github
    • 09 Implementar Gephi - Visualizar qualquer tipo de grafo com informações variadas
    • 10 Testar Gephi - Avaliar viabilidade da ferramenta
    • 11 Implementar Discovery - Mapear todos os equipamentos na planta da algar de forma automática e eficiente
    • 12 Testar Discovery - Avaliar viablidade da ferramenta
    • 13 Integração discovery com gephi - Representar as informações do discovery no Gephi
    • 14 Teste da integração - Avaliar viablidade da ferramenta
    • 15 Resolver identificação do tipo de roteador - P, PE ou BORDA
    • 16 Implementar criação de LSP tunnels - Implementar a criação de túneis de forma automática e eficaz, baseado na documentação
    • 17 Testar criação de LSP tunnels - Avaliar viablidade da ferramenta
    • 18 Implementar interface web para utilização da ferramenta de criação de túneis - Facilitar o uso
    • 19 Testar interface web - Avaliar viablidade da ferramenta
    • 20 Implementar API capaz de executar comandos simultaneamente - Executar comandos remotos de forma simultanea em diversos equipamentos com confiabilidade
    • 21 Testar API - Avaliar viablidade da ferramenta

Limitações


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


PoC


Desenvolva um PoC (Proof of Concept)


Requisitos Funcionais


  • What it should do?
    • Input
      • List of IP prefixes
      • Credentials to enter in equipments
    • Output
      • List of equipments in network
        • Loopback IP
        • LSP
        • OS
  • What do I need to know?
    • Linux / Windows
      • Run commands mannually
    • Run local / remote command
      • SSH
      • Telnet
      • Ping
    • Files
      • Read
      • Write
      • Delete
      • Create
    • Threads / Process
      • Semaphore
      • Deadlock
      • ThreadPool
      • Sweet Spot in concurrent threads/processes
    • Data Structures
      • Arrays
      • Hash Table
    • Exceptions
      • Handle errors
      • Create Logs
    • Functions
      • Global variables
      • Local variables
    • Paramiko?
      • Help using SSH in python
  • What should I do?
    • some_constants
    • main()
    • ping(hostname)
    • run_local_command(command)
    • run_remote_command(hostname, command)
    • get_loopback_ip(hostname)
    • get_lsp(hostname)
    • get_os(hostname)
    • get_info(hostname)
    • build_ips_ping(prefixes)
    • build_database(credentials_path)

Detalhamento Técnico


Descreva especificamente os aspectos técnicos desta pesquisa





Kanban



Histórico



Pesquisadores