«

»

jun 06 2016

Porque um Engenheiro de Redes precisa aprender conceitos de Banco de Dados

SysAdmin & Database

Em post anterior comentamos sobre os questionamentos de alunos dos cursos superiores de tecnologia (CST) em Redes de Computadores sobre os temas abordados no currículo de formação.
Na ocasião destinamos todo um post argumentando sobre a necessidade de um Engenheiro de Redes / SysAdmim conhecer programação e as linguagens de scripts.
Neste post vamos comentar sobre a estranheza dos alunos quando se deparam com o tema Banco de Dados no currículo do CST em Redes de Computadores, assim como os iniciantes nessa carreira.

É compreensível essa indagação, sobretudo para aqueles neófitos no mundo das Redes de Computadores, sobre a existência de uma cadeira chamada Introdução ao Banco de Dados ou outro nome assemelhado. A inexperiência dificulta a percepção de que esse é um conhecimento muito importante na carreira de um Engenheiro de Redes.

Mas afinal, onde será cobrado esse conhecimento?

Na Formação

As Instituições de Ensino Superior (IES) que oferecem esses cursos precisam estar síncronas com as diretrizes curriculares dos CST em Redes de Computadores, pois o tema Database será cobrado no ENADE – Exame Nacional de Desempenho dos Estudantes.

Na atuação profissional

Evidentemente em grandes corporações há uma forte estratificação das equipes de TI, resultando na crescente especialização do conhecimento e competências, a equipe de Redes preocupa-se apenas com roteamento e comutação, a de Servidores somente com disco e CPU, de Database apenas com o MySQL, Oracle, SQL Server ou outro SGBD, e a de desenvolvimento apenas com as especificações das API’s.
E como cada um cuida de seu silo de informação, utilizando o mesmo meio físico, os problemas, quando ocorrem, são amplificados.
Já nas empresas de pequeno e médio porte a realidade é ligeiramente diferente. O Engenheiro de Redes precisa ter um conhecimento mais abrangente.
O motivo é muito simples. Hoje as redes têm um amplo alcance e fazem interface com tudo e o Engenheiro de rede precisa fazer a interface com todas as equipes que de alguma forma trafegam seus dados através da rede.
Nesse contexto o Engenheiro de redes precisa ter respostas para: qual latência é aceitável?; que portas e protocolos são usados?; quais interfaces físicas usar nos servidores? E etc…
Ainda nesse cenário o Engenheiro de Redes se debruçará sobre os manuais para melhor compreender algum pacote de software; ou utilizará, nos servidores, comandos netstat para diagnosticar por que o novo app não “sobe”. Igualmente, resolvendo um problema com wireless, e ainda imergir no processo configurações de rede e em diferentes sistemas operacionais, plataformas de hardware, telefones e tablets.
As inovações tecnológicas trazem grandes desafios aos engenheiros de Redes. Com o surgimento da telefonia IP e Virtualização, a rede está ampliando ainda mais seu escopo. A voz é agora um outro serviço de rede; os telefones são dispositivos de rede, opções de codec, configurações de QoS, PoE. Todo esse universo agora é parte da rede.
Na virtualização, a convergência de infraestrutura significa a incorporação de Storage e Network, como: Fibre Channel over Ethernet – FCoE, Internet Small Computer System Interface – iSCSI e assim por diante. O engenheiro de rede agora precisa estar ciente sobre sistemas de Storage, requisitos e integração.

Mas, onde entra o Database nessa história?

Note que tudo trafega sobre o mesmo meio físico, onde o responsável é o Engenheiro de Redes. Qualquer anomalia que exista, como sobrecarga de um servidor ou na própria rede, pode contribuir para que os dados não fluam como esperado. Além disso, outras anormalidades na rede podem impactar seu funcionamento, dentre eles podemos relacionar: Gargalos de memória; Problemas de I/O; Componentes de Hardware, etc.

Gargalos de memória são causados por limitações de memória disponível e pressão de memória causadas pelo banco de dados, sistemas operacionais ou outra atividade das aplicações;

Problemas de I/O podem ser causados pela utilização de hardware lento, projeto inadequado de solução de Storage, e configuração;

Componentes de hardware, tipos de disco, disco array, configuração de RAID e requisições desnecessárias feitas por um banco de dados também afetam o tráfego de I/O
Em uma empresa de pequeno e meio porte onde o Engenheiro de Redes está envolvido direta e indiretamente em todos os processos de TI, ele precisa – quando arguido – ter respostas sobre qual processo e/ou aplicação e/ou ativo estão impactando a rede. Melhor ainda, argumentar tecnicamente que o desempenho da aplicação está sendo afetado pelo banco de dados ou vice e versa.
Nesse panorama o Engenheiro de Redes precisa ter um conhecimento relativo de banco de dados, uma vez que além dos incidentes já relatados, um banco de dados mal planejado ou mal administrado, pode causar grandes impactos no desempenho e funcionamento da rede. Veja esses incidentes e potenciais problemas.
O impacto negativo que um banco de dados pode causar em uma rede, tem seu início no projeto, passando pela instalação, incidindo na implementação do projeto físico, continuando com a configuração e finalizando no planejamento de execução das Queries e administração.

Problemas de projeto

Um projeto mal concebido, pode ter um impacto significativo no desempenho da rede. A normalização malfeita pode causar excesso de paginação de memória e consequentemente problemas de I/O;

Problemas na Instalação

Uma instalação de um Database e implementação do projeto físico, sem o prévio conhecimento das estruturas lógicas e físicas de um SGBD podem afetar significativamente o desempenho de I/O;
Os SGBD’s do mercado, com maior base instalada, guardam ligeira semelhança em suas estruturas logicas e físicas., mas o desconhecimento das diferenças é de fundamental importância para o sucesso na instalação.

Problemas na Implementação

A Implementação e configuração mal planejadas dos índices exigem verificações constantes de tabelas que, em caso de tabelas grandes, significarão que um grande número leituras de linhas/ tuplas / registros do disco serão manipulados diretamente na memória, afetando também o desempenho de I/O;

Problemas na Execução

Queries
As queries, são elementos fundamentais para realizarem consultas no Servidor onde está instalado o SGBD e devolvê-las para as aplicações.
Toda Query passa por um processo de execução. O código fonte desenvolvido com a linguagem SQL é convertido em expressões de álgebra relacional que por sua vez passa por um processo de compilação em Tempo Real.
Queries ineficiente podem ser um resultado de ausência de índices, planos execução ineficiente, aplicações ruins e um projeto de esquema do Database muito mal elaborado.

Stored Procedure.

É uma sub-rotina, semelhante a uma função definida pelo usuário (UDF) disponíveis para os aplicativos que acessam um SGBD e são armazenadas no dicionário de dados do banco de dados.
Sua execução ocorre dentro do próprio SGBD não impactando o tráfego da rede e tendo ainda um fator positivo para a segurança do banco de dados que é a proteção contra injection attack.
Apesar de todos esses fatores positivos, uma Stored Procedure mal elaborada pode estressar o uso de memória em 100%.
Queries mal elaboradas causam compilações e recompilações excessivas e combinadas com planos ineficazes de execução e Stored Procedures que têm tempos de execução longos devido a concepção incorreta, podem comprometer significativamente o desempenho da rede.

Ferramentas de Tunning

Cada SGBD do mercado contempla em seu conjunto features, Tunning Tools. Existem, ainda, outras tantas open source Tunning Tools, contudo sem o conhecimento dos conceitos de banco de dados, de nada adianta a mais poderosa ferramenta de Tunning.

Conclusão.

A menos que você trabalhe em uma grande organização, onde o Engenheiro de Redes é responsável pelo roteamento e comutação ou cuida especificamente de algum outro serviço que agora transita pela rede, como voz, wireless, etc., talvez todo nosso comentário sobre a necessidade de um profissional de redes possuir essas habilidades, caia no vazio.
Mas considere a evolução da tecnologia convergente onde voz, dados, vídeo e Storage já são serviços de redes, e concordará que as equipes especializadas – mesmo em grandes corporações – estão com os dias contados.
Assim sendo, a existência da cadeira “introdução a banco de dados” nos currículos dos cursos CST em Redes de Computadores e a aquisição de habilidades em Database se justificam para aqueles que desejam ser um profissional diferenciado no segmento de redes.
Finalizando, como estamos na era da inovação, certamente as organizações evoluirão juntamente com o avanço das tecnologias. Ai quem sabe teremos novas categorias de especialistas como: Engenheiro de Redes com foco em serviços de voz; Engenheiro de Redes especializado em Database. A mesma ideia vale para Wireless, Storage, Video, SDN, etc…

Que venha o futuro.

Até o próximo post, quando falaremos sobre: “O impacto da IoT na vida do Engenheiro de Redes”



Comente usando o Facebook!
0
0

1 comentário

1 menção

  1. antoniofernandovieiradesousa

    Excelente artigo! Vou compartilhar com meus contatos.

    0

    0
  1. Porque um Engenheiro de Redes precisar aprender conceitos de Banco de Dados — Blog CloudCampus Networking Academy | Fernando "Eagle" de Sousa

    […] via Porque um Engenheiro de Redes precisar aprender conceitos de Banco de Dados — Blog CloudCampus Ne… […]

    0

    0

Deixe uma resposta