cancelar
Mostrar resultados para 
Pesquisar em vez de 
Queria dizer: 
cancel
2016
Apresentações
12
Útil
6
Comentários
SamuelGLN
Spotlight
Spotlight
SamuelGLN_11-1699316876199.png

Fonte: https://dcgubbins.com/portfolio/four-ages-of-networking/

É fato que nos últimos anos os negócios vêm crescendo em tamanho e complexidade com o objetivo de entregar cada vez mais rápido valor aos clientes. Porém, quando olhamos para as infraestruturas tradicionais, percebemos que essas já não são mais capazes de viabilizar entregas na velocidade em que se exige. Grandes empresas já perceberam que a infraestrutura de redes precisa passar a ser um facilitador - e não um inibidor - para que a organização consiga sustentar o crescimento do negócio. Tendo isso em vista, começaram a adotar princípios agile para trabalhar de forma rápida e melhorar continuamente a experiencia do usuário através de meios de coleta e medição dos feedbacks recebidos. Diante de toda essa transformação, nós, profissionais de redes, estamos sendo cada vez mais desafiados e pressionados para entregar soluções que forneçam uma infraestrutura ágil e adaptável. Tais soluções só são alcançadas adotando as práticas de DevOps e automação com orquestração. Conseguir ter agilidade na entrega de novas capabilities e features, aumento de disponibilidade, redução de erro humano nas operações de redes e otimização de custos são apenas alguns dos objetivos desejados pelos times DevOps.

Ademais, facilitar a operação da rede e reduzir custos são objetivos chave desejados também pelas diretorias. Com uma análise mais detalhada, podemos perceber que grande parte do alto custo operacional, muitas das vezes, está relacionado com o modo como a infraestrutura de redes é operada e seus produtos/serviços são consumidos pelas operações de TI. Quanto mais uma rede é operada manualmente, mais violações de segurança podem ocorrer e mais tempo é gasto para identificação e resolução de falhas.

Alcançar tais objetivos é algo bastante desafiador não apenas para analistas e engenheiros. Com toda essa mudança na forma de operar e entregar serviços de redes, os fabricantes precisam cada vez mais modernizar seus produtos que, em sua grande maioria, utilizam command-line interface (CLI) para configuração e visualização de dados e Simple Network Management Protocol (SNMP), que é praticamente um padrão de uso quando se fala em monitoramento de saúde e falhas em equipamentos de redes. Todavia, mesmo com as empresas dedicando recursos financeiros para ter times e monitoramento dos ativos 24/7, ainda não é possível atingir o nível desejado de predição e proatividade. Pensando nisso, entramos, então, na fase moderna de gestão e monitoramento dos equipamentos de redes em que constantemente buscamos por meios de prever e agir com proatividade em cima dos problemas. Essa mudança de modus operandi, na qual o analista deixa de trabalhar “apagando incêndio”, requer uma coleta de dados detalhados dos equipamentos, para que seja possível sua utilização pelo Network Management System (NMS) e demais aplicações. Essa tendência resultou em desenvolvimento, por parte das fabricantes, de novas capabilities para que seus equipamentos consigam exportar dados operacionais e de configurações de maneira que as aplicações consigam entender e utilizar. Alguns exemplos são NETCONF, RESTCONF, gNMI, YANG Data Models...

Obs: O uso do Data Model YANG como base para configuração e leitura de dados operacionais é comumente referido como model-driven progrmmability e model-driven telemetry respecticamente.

 A figura a seguir mostra em high level as capabilities dos equipamentos de redes nessa era moderna de automação.

SamuelGLN_10-1699316834687.png

Figure 1.0 Modern Networking Products Capabilities

Hoje em dia, não da para se falar em automação de infraestrutura de redes sem mencionar as famosas applications programming interfaces (API). Resumidamente, APIs são mecanismos ou conjunto de requerimentos que governam como uma aplicação pode falar com a outra. Olhando para ambientes de infraestrutura de redes, desenvolvedores utilizam API para configurar ou monitorar equipamentos especificos, sendo elas divididas em dois tipos: Northbound API e Southbound API.

SamuelGLN_9-1699316813440.png

Fonte: Cisco Certified DevNet Associate – Offical Cert Guide

Northbound APIs são utilizadas para a comunicação da aplicação com a controller. Pegaremos como exemplo uma rede SDWAN-VIPTELA (Caso queira aprender um pouco mais sobre SDWAN, leia minha outra publicação aqui ) que possui o vManage fazendo o papel de gestão da rede e possui uma graphical user interface (GUI). Quando um operador acessa a interface gráfica em seu desktop e realiza uma alteração, a informação referente a essa alteração é enviada para a controller através de uma Northbound REST-based API. A controladora, por sua vez, encaminha a alteração para os devices através de uma Southbound API. A imagem a seguir mostra um exemplo da utilização de API ao alterar o Organization Name dentro da GUI do vManage:

 

SamuelGLN_8-1699316765356.png

Image 1.0 Demonstração API lab eve-ng pessoal

Note que quando realizo a alteração, a informação é enviada ao equipamento via API utilizando o método PUT.

APIs também podem ser utilizadas para requisição de determinadas informações ou configurações dos dispositivos de redes, funcionando basicamente como um garçom que recebe o pedido do cliente (aplicação), leva até a cozinha (device) e retorna com o alimento (informação), conforme exemplificado na imagem a seguir:

SamuelGLN_7-1699316718912.png

Fonte: https://www.geeksforgeeks.org/what-is-an-api/

Ainda utilizando o nosso vManage como exemplo, a image 1.1 a seguir mostrará a requisição sendo enviada após clicarmos na opção Devices. O que esperamos após essa ação é que a GUI nos mostre a lista de devices que estão sendo gerenciados pelo vManage. Para isso, a nossa API utilizará agora o método GET, pois queremos apenas solicitar ao vManage a lista e entregá-la via GUI ao usuário final.

 

SamuelGLN_6-1699316698469.png

Image 1.1 Demonstração API lab eve-ng pessoal

Com essa breve explicação já conseguimos seguir com a nossa leitura e futuramente trarei artigo explorando mais o tema. Caso queira aprender mais sobre API, a Cisco fornece gratuitamente o treinamento Coding & APIs.

Pois bem, unindo todas essas informações sobre a evolução de design e tecnologia dos equipamentos, podemos dizer que para alcançar o nível desejado de automação é de extrema importância que a coleta de eventos em real-time seja feita, pois a rápida e detalhada coleta de dados dos equipamentos é uma característica muito importante para as novas técnicas e protocolos de gerenciamento. Isto possibilitará uma mudança de arquitetura para a aplicação de mecanismos self-healing e, somente então, os analistas e engenheiros de redes poderão direcionar seus esforços para pensar em como expandir e melhorar a infraestrutura focando no negócio. Contudo, essa mudança de mind-set vai além de requisitos e questões técnicas, é necessário também entendimento e visão por parte da gestão e diretoria para que consigamos ter sucesso e colher os frutos de possuir uma rede com mais inteligência e automação. É preciso que os times de engenharia, operação e desenvolvimento tenham tempo para pensar focados no negócio e, assim, propor as melhores soluções, já que não serão apenas com treinamento de Python e lógica de programação que teremos uma revolução técnica no setor.

Mas afinal de contas, o que é NetDevOps?

SamuelGLN_5-1699316646293.png

Fonte: https://storage.googleapis.com/blogs-images/ciscoblogs/1/5ce47763db24c.png

Para entender os conceitos de NetDevOps primeiro precisamos explorar o que é DevOps. Tradicionalmente, em grandes empresas, temos a típica separação entre os analistas de desenvolvimento e os analistas de operações, cada um com seu diferente objetivo. Enquanto o time de desenvolvimento foca em desenvolver novos softwares ou melhorar os já existentes, o time de operação foca em manter o ambiente livre de erros e com o melhor service level agreement (SLA) possível. Conforme a infraestrutura de redes e TI de uma empresa expande, esses dois times precisam começar a trocar informações para que os novos softwares e/ou atualizações não tenham “pontos soltos”. Essa interação, na maioria das vezes, resulta em conflitos e ineficiência de projeto, por ter equipes com objetivos diferentes tendo que trabalhar em conjunto sendo que, comumente, uma não tem o conhecimento básico sobre as tecnologias da outra. Para superar esse desafio, foi então criado o conceito de DevOps, em que “Dev” se refere ao desenvolvimento e “Ops” a operação. Como o próprio nome diz, teremos agora dois times trabalhando em conjunto para atingir o mesmo objetivo. Com esse time alinhado, passamos a ter clareza sobre o que a infraestrutura precisa fornecer, o desenvolvimento precisa criar e, mais do que isso, temos analistas de operações que, mesmo sem saber programar em alto nível, entendem o processo de desenvolvimento de uma aplicação. Podemos dizer que DevOps é um framework e uma sequência de práticas que tem como objetivo entregar produtos com relativa facilidade, velocidade e alta qualidade, utilizando automação e trabalho em conjunto entre times de operação e desenvolvimento, tendo como principal meta o aumento do valor do negócio para a organização e para o seu público-alvo. Tal meta só se atinge trabalhando através de um completo processo de desenvolvimento, construção, teste e liberação de produto de forma rápida.

A imagem a seguir mostra os estágios do desenvolvimento:

SamuelGLN_4-1699316609028.png

Fonte: https://sempreupdate.com.br/wp-content/uploads/2019/11/DevOps.jpg 

Importante termos em mente que produtos de alta qualidade só são entregues se tivermos o feedback constante do usuário final ou cliente alvo do produto. Esse tipo de interação é uma parte chave da estratégia do DevOps. Além disso, princípios/práticas agile são comumente usadas para prover entrega contínua de softwares, produtos, atualizações ou capabilities.

Aplicando todos os princípios de DevOps e estratégias de desenvolvimento de software nas operações de redes, teremos o NetDevOps, que, por sua vez, é focado em entregar os seguintes benefícios à organização:

  • Adicionar valor ao negócio através da otimização da rede com a utilização de automação para configurações iniciais de dispositivos e dia a dia da operação. Essas técnicas de automação para configurações de elemento de redes também são referidas como infrastructure as code (IaC).
  • Entrega de novas features e capabilites na rede de forma ágil.
  • Redução do risco de falhas realizando frequentemente pequenas atualizações na rede.
  • Garantir a qualidade e aprimoração da rede através de aplicações de monitoramento e feedback dos usuários finais.
  • Garante melhor colaboração entre a diretoria de negócio e times de operação e desenvolvimento, através da quebra de “ilhas” de setores.
  • Provê confiabilidade das soluções, uma vez que é testada antes de ser enviada para produção.

Dentro de todo esse contexto, é de extrema importância explorarmos alguns termos como: Continuous integration, continuous delivery e continuous deployment.

De forma breve, podemos dizer que continuous integration (CI) é a capacidade de mesclar/fundir pequenas mudanças dentro do código principal (se utiliza sistemas de controle de versão, como, por exemplo, o GitHub) para que então seja realizada a validação e teste de velocidade de leitura do código. Após o processo CI, o Continuous delivery (CD) atua realizando testes de integração em ambiente de testes e pré-produção e, uma vez concluído, pode então ser realizado o deploy do código no ambiente de produção. O deploy pode ser realizado de forma automática ou manual. O acrônimo CD é referido como Continuous deployment no processo de deploy automático e continuous delivery quando feito de forma manual.

SamuelGLN_3-1699316576013.png

Fonte: https://blogs.cisco.com/cloud/have-you-ever-considered-ci-cd-as-a-service

Após toda essa minha tentativa de te entregar uma pequena amostra das mudanças que estamos vivendo em infraestrutura de redes, fica a pergunta: O engenheiro/analista de redes que não aprender a programar em alto nível perderá seu espaço no mercado?

Do meu ponto de vista, nós, profissionais de redes, não necessariamente precisamos focar em aprender a programar em alto nível, pois não seremos os desenvolvedores; assim como desenvolvedores não precisam aprender a configurar uma infraestrutura de redes do zero. Acredito que o que precisamos é entender o processo de desenvolvimento de software e os conceitos de lógica e programação, para que consigamos compreender as demandas recebidas, bem como solicitar/propor novas soluções para o time de desenvolvimento. E é exatamente esse o foco quando se fala em NetDevOps, não para o desenvolvedor dominar a área de redes e nem engenheiro de redes dominar a área de desenvolvimento. Acredito que no futuro teremos times integrados e trabalhando em conjunto, sem que uma área seja algo obscuro para a outra. Até porque redes não é só ping e programação não é só “Hello world”.

Com o intuito de preparar profissionais para essa nova era, além da trilha de certificações DevNet, a Cisco fornece, através da plataforma https://developer.cisco.com/, treinamentos gratuitos com conteúdo teórico e lab hands-on para praticar os conhecimentos adquiridos. Não deixe de se cadastrar e iniciar os seus estudos!

 

SamuelGLN_2-1699316523466.png

Image 3.0 Cisco Developer

Se esse artigo te ajudou de alguma forma, peço que compartilhe, deixe o seu kudo e comente qual o seu ponto de vista e expectativas para o futuro sobre o tema!

SamuelGLN_0-1699316477497.png

Comunidade Cisco

Aprender. Compartilhar. Crescer.

Comentários
charlesCorp
Level 1
Level 1

Boa explicação, Samuca!!
Sempre aprendendo contigo!
Pra cima!!

michael dsilva
Level 1
Level 1

perfect.

RafaPerez
Level 1
Level 1

Muito grato Samuca! Excelente!

Está massa.

marceloborges27
Level 1
Level 1

Arquivo excelente, Parabéns Samuel !

charlesCorp
Level 1
Level 1

ajudou muito

Primeiros Passos

Encontre respostas, faça perguntas e conecte-se com nossa comunidade de especialistas da Cisco de todo o mundo.

Estamos felizes por você estar aqui! Participe de conversas e conecte-se com sua comunidade.