domingo, 13 de março de 2016

Microsoft, Facebook e o switch de rede

Não resta dúvidas quanto à importância do "switch de dados" em uma rede interna, já que ele é o concentrador dos fluxos de dados vindos dos diversos dispositivos ligados em rede. Seu "QI", se é que  posso utilizar esse termo, ou seja, sua capacidade de identificar os pacotes de dados que recebe, entender suas prioridades e necessidades (grau de importância e urgência sobre outros tipos de pacotes, taxa máxima admitida para perda dos pacotes, largura de banda necessária, tempo máximo de latência, etc.), atender aos requisitos e encaminhar os pacotes aos respectivos destinos, é parte integrante do QI da infraestrutura de rede.


 A idéia deste blog não é atuar na arena do futurismo, mas esse movimento, com a participação do Facebook e agora recebendo adesões de peso, não poderia deixar de ser comentado.
Em Junho de 2014 publiquei o artigo "Switch Facebook", quando comentei sobre o projeto OCP - Open Compute Project, lançado em 2012 pelo Facebook.
Então, não poderia deixar de comentar sobre o anúncio, divulgado esta semana, de que a Microsoft decidiu se juntar ao Facebook no projeto OCP e abrir o  código fonte de seu pacote de software denominado SONiC[1] -  Software for Open Networking in the Cloude, desenvolvido em conjunto com as empresas Arista, Broadcom, Dell e Mellanox.
O projeto OCP ganhou força.
O switch foi picado e recebeu o vírus do Linux. Seu DNA está sujeito a mutações importantes.
Essa decisão é uma ameaça aos planos dos fabricantes tradicionais de switch, principalmente a Cisco, o maior deles. A expectativa dos engenheiros de rede é que eles repensem sobre a questão da produção de equipamentos com inteligência proprietária versus a plataforma aberta do projeto OCP, sob pena de perderem mercado.
As operações em nuvem (Cloude Computing) vem ganhando espaço nas infraestruturas de rede das corporações, o que exige taxas de transmissão cada vez mais altas, mais segurança e requisitos de padronização das plataformas do software de controle das comunicações.
Correndo em paralelo, as operações Big Data e as redes das coisas (IoT - Internet of Things) estão, juntamente com os fluxos de vídeo (video streams), cada vez mais, gerando volumes de informações que devem circular pelas redes internas, pelas redes externas e, parte disto, com destino a data centers.
Esses aspectos, além de nos fazerem pensar mais à frente, pois temos projetos em nossa mãos, pedem uma infraestrutura de rede que seja flexível e de rápida adequação a novos requisitos a fim de reduzir os riscos (baixo desempenho, perda de investimento).
A adesão da Microsoft ao OCP visa facilitar a entrada e a implantação de seus produtos para computação em nuvem em ambientes com diversas plataformas de infraestrutura de rede e switches de fabricantes diversos.
A padronização sempre foi uma questão fundamental no avanço das redes. Hoje mais do que nunca. Os fabricantes passaram a considerar estratégico participar de associações de elaboração de normas, bem como formar grupos de colaboração para definir normas que eliminem problemas de interconexão.
A dianteira tecnológica obtida por um fabricante está cada vez menor e mais volátil. Portanto, mais do que nunca é preciso estar na frente, como naquela história em que dois amigos, na mata, ouviram o rugido de um leão. Um deles, ao ver que o amigo resolveu calçar o tênis, perguntou se ele pretendia correr mais do que o leão. A resposta foi que ele só pretendia correr um pouco mais do que o amigo.
SDN - Software Defined Networking, ou "operação em rede definida por software", é um conceito recente, cujo objetivo é estabelecer equipamentos de rede (principalmente switches e roteadores) cujas características possam ser definidas por software, de forma padronizada, permitindo assim a rápida adequação do hardware às demandas de tráfego e, consequentemente, uma infraestrutura de rede mais flexível e eficiente. O conceito, portanto, se aplica a redes locais e de longa distância.
O SONiC é um pacote de software baseado em Linux, originalmente preparado para rodar sob a distribuição Debian, aderente ao conceito SDN, com funcionalidades de camada 3 (Layer 3, roteamento), que permite utilizar a mesma pilha de firmware (software de controle de hardware) em switches de vários fabricantes, em conjunto com a SAI (Switch Abstraction Interface)[2], um API definido em linguagem C para comando de circuitos integrados de comutação (ASICs), utilizados pelos switches.
Os switches passaram por algumas mudanças de paradigma ao longo dos anos, desde sua concepção, quando ainda eram chamados de "bridge". Uma delas foi o rompimento da barreira da camada 2 (Layer 2), incorporando funcionalidades da camada 3. Agora, acho que podemos considerar que está em curso mais uma mudança de paradigma: o hardware padronizado e aberto, com suporte a um sistema de gerenciamento global. O sinal é a padronização que está sendo patrocinada pelo projeto OCP, reforçado pela adesão do SONiC.
A figura 1 é uma tentativa de ilustrar a evolução da padronização na comunicação de dados, dividindo-a em três eras.
A primeira era é a dos mainframes, dos grandes fabricantes, como IBM e Fujitsu, com todos os elementos proprietários. Tem como características principais, além do domínio absoluto de um fabricante sobre a solução, a dificuldade em interconectar sistemas  de fabricantes diferentes e a "lenta" evolução tecnológica.

Fig. 1: Evolução da padronização na comunicação de dados
Era
Hardware
Sistema Operacional
Protocolo
camadas
1 e 2
Protocolo camada
3
Protocolo
de
Roteamento
Protocolo de gerência
1
proprietário
proprietário
proprietário
proprietário
proprietário
proprietário
2
proprietário
proprietário
Ethernet
IP
OSPF
proprietário
3
proprietário
proprietário
Ethernet
qualquer
qualquer
OpenFlow
aberto
aberto
Ethernet
qualquer
qualquer
OpenFlow
Na segunda era, a força dos protocolos Ethernet e IP (suite completa) facilitaram bastante a interconexão das redes, porém, além  do hardware e do software, os protocolos de gerenciamento continuaram proprietários, persistindo a grande dificuldade em configurar a rede toda de forma holística.
Apesar de haver protocolos de roteamento, abertos e disponíveis, como o OSPF, estes não possuem capacidade de atuar nas tabelas de roteamento dos roteadores e switches de forma adequada a partir de uma visão geral da rede, sendo impraticável o combate eficaz aos congestionamentos em determinados nós da rede, uma vez que a distribuição do tráfego é aleatória e foi agravada recentemente pela proliferação dos dispositivos móveis e sistemas em nuvem.
Outra dificuldade existente é o projeto da rede e o teste de validação de sua configuração que muitas vezes, por exigir um esforço enorme de laboratório e ajuste de configurações se torna praticamente inviável levando a implantação a se arrastar mais do que seria desejável.
Uma das ideias intrínsecas do SDN é que os equipamentos switches e roteadores possuam uma camada de software de gerenciamento que opere como um driver para o software de gestão da rede, que permita receber informações de roteamento, obviamente colhidas com visão holística, envie informações de tráfego e troque requisitos de rede  com o sistema de gerenciamento.
Outro aspecto desejável par o SDN é que ele consiga reservar partições da sua capacidade de transmissão (banda disponível em bits por segundo) para rodar um sistema em rede de forma  independente do que está em produção e sem interferir nele. Similar a uma VLAN. Assim, outros protocolos podem ser testados ao vivo (on the fly) como alternativas ao OSPF ou até mesmo ao IP, por exemplo. Este aspecto deve acelerar sobremaneira o desenvolvimento de novas soluções de roteamento em rede.





[1] O código fonte do SONiC está disponível em GitHub