20 de nov. de 2017

Python para Engenheiros de Redes - Parte I


Olá Pessoal do NetFinders, em primeiro lugar gostaria de agradecer ao Adilson por ter me aceitado como um colaborador do seu Blog. Espero acrescentar nem que seja um pouco nesse enorme mundo que é a tecnologia.Para quem não me conhece eu sou o CCIE R&S #35681, e trabalhei muitos anos com networking especialmente no início da minha carreira, porém nos últimos anos tenho trabalhado mais como sysadmin especialmente com Big Data, Virtualização, DevOps etc;digamos que para variar um pouco.

Espero que gostem dos posts que vou ir subindo no blog, e para começar vou introduzir vocês ao mundo da programação utilizando a linguagem python, dessa forma vocês vão poder simplificar muitas tarefas que são repetitivas e onerosas de tempo, por serem feitas de forma manual.

Desde já agradeço por sua atenção.

Programação(python) para Engenheiros de Redes

Foram-se os tempos em que um engenheiro de redes somente precisava conhecer o sistema operacional dos equipamentos de networking, seja ele Cisco IOS, JunOS, etc. Com a chegada das novas tendências de mercado, chegou o paradigma de DevOps, no qual os mundos de Desenvolvimento e Operações se fusionam afim de obter uma melhor comunicação, colaboração e coesão entre ditas áreas.

Segundo https://newrelic.com/devops/what-is- devops “Em vez de ter duas áreas diferentes, trabalhando digamos que de forma independente
uma da outra executando tarefas específicas; a metodologia DevOps reconhece uma interdependência de ambas as áreas. Dessa forma DevOps ajuda a desenvolver um software com maior agilidade, mantendo o serviço estavél, e ganhando a velocidade necessária para uma maior inovação.”

Um dos itens no paradigma de DevOps é o chamado “Infraestructure as Code IAC”, no qual um tem a capacidade de administrar e configurar toda uma infraestrutura de TI via código, em vez de ser um processo manual. O IAC se aplica ao mundo do Networking, onde temos por exemplo o conceito de SDN, no qual a camada de controle é desacoplada da camada de fordwarding. Dessa forma o controle é feito no chamado SDN Controller, e é ele que se encarrega de configurar as caixas de fordwarding, switches. Dessa forma toda à programação da sua rede você faz no SDN controller. Sendo assim, se faz necessário o aprendizado de alguma linguagem de programação afim de poder estar atualizados com as novas necessidades.

Porque python?

Não existe uma regra na linguagem de programação a ser utilizada no IAC, mas sendo python uma linguagem de fácil aprendizado, gratuito, com muitas livrarias, e com uma comunidade de desenvolvimento da linguagem sempre ativa; digamos que é a linguagem perfeita para nosso propósito, que é o de programar a nossa rede.

Qual versão de python?

Atualmente existem duas grandes versões de python a 2.7 e a 3.3. Visto que a versão com um maior número de livrarias e sendo a mais utilizada é a 2.7, vamos escolher essa versão. Além do mais a ideia é aprender uma linguagem de programação para nos ajudar em nossas tarefas diárias e não trocar de carreira para virar um programador gabaritado.

Linux ou Windows?


Python 2.7 roda em ambos sistemas operacionais sem maiores problemas, porém eu acho muito mais fácil trabalhar em Linux do que em Windows. Linux também possui uma série de vantagens sobre Windows, a instalação do python assim como de livrarias externas é bastante simples, no geral os programas python rodam bem mais rápido que em Windows etc..

Por ser o primeiro post é isso, no próximo post vou lhes mostrar como fazer do nossoambiente de testes.

Obrigado a todos pela atenção!

José Balbuena
CCIE R&S #35681

12 comentários:

  1. Ótima texto, teria algum curso para indicar ?

    ResponderExcluir
  2. Estou tentando convencer o Balbuena a lançar um aqui pelo NetFindersBrasil. Nos próximos posts, vai ter muito hands-on envolvendo Python.

    Fiquem Ligados!

    ResponderExcluir
  3. Li bastante coisa sobre SDN.... e confesso que fiquei bastante interessado. Recomendo o site da cisco sobre o assunto: https://developer.cisco.com, mas curso aqui no Brasil seria bem vindo =)

    Fulvio

    ResponderExcluir
  4. Adilson, parabéns pelo belo texto e iniciativa, da para desenvolver algo em php também?

    ResponderExcluir
  5. Adilson, parabéns pelo belo texto e iniciativa, da para desenvolver algo em php também?

    ResponderExcluir
  6. Adilson, pode reservar uma vaga pra mim se sair o curso, haha.
    Ótimo post!

    ResponderExcluir
  7. A melhor que eu achei no python foi o uso do PARAMIKO, um projeto especialmente para redes, Recomendo dar uma olhada http://www.paramiko.org/, este cara de explica muito bom https://www.youtube.com/watch?v=IhroIrV9_7w

    ResponderExcluir
  8. Olá Willian Boa Tarde, sim o paramiko é a livraria que vai ser utilizada para nós conetar via SSH aos elementos de redes e extrair informação dos mesmos. No momento vamos tratar esse asunto.. Obrigado Jose

    ResponderExcluir
  9. Olá Marcos santana viana Boa Tarde, sim é possivél utilizar qualquer linguagem inclusive php, porém sendo python a linguagem mais amplamente utilizada é a que vamos ensinar aqui no blog num primeiro momento...porém se der um tempo mostro alguns exemplos de script em php tb!!..Obrigado Jose

    ResponderExcluir