Como a telefonia fixa mudou a internet e os aplicativos modernos

Como a telefonia fixa mudou a internet e os aplicativos modernos

"Eu acho que coisas como PowerPoint de certa forma destruíram a criatividade" - Joe Armstrong - Criador da linguagem Erlang
Poderia falar da distribuição de Erlang, mas precisaríamos falar antes de estatística aplicada

Disponibilidade —essa palavra é uma dentre várias procuradas durante a construção de um aplicativo mobile ou webatualmente, principalmente porque os setores de serviços está cada vez mais dependente da internet e da possibilidade de cada vez mais pessoas possuírem acesso àinternet/celulares. Isso é crítico, pois uma hora fora do ar, pode gerar perdas milionárias para várias empresas, e quando isso acontecem com os provedores públicos de nuvem (como aconteceu recentemente com a Google e Amazon), é pior ainda.

Conceitos como, disponibilidade, escalabilidade, confiabilidade, ficaram muito mais comuns e se tornaram prioridades com o advento dos microsserviços — um novo tipo de arquitetura que ganhou forças nos últimos anos, visando a facilidade na publicação de novas aplicações e manutenções destas, diferentemente do antigo modelo (ainda muito usado), o monólito (que também tem suas vantagens). Enquanto antigamente tínhamos 1 ou 2 monólitos que representavam um sistema inteiro, agora temos centenas de microsserviços que trabalham em conjunto para entregar diversas funcionalidades aos usuários, eu mesmo já trabalhei em uma empresa que na época mantinha +250 microsserviços, e como você pode imaginar, controlar tudo isso é muito difícil, para isso, foram criadas ferramentas para diminuir o espaço que estas ocupam em servidores, e também para orquestrar suas execuções. Alguns, no mundo da tecnologia podem dizer que tudo começou com a galera do Docker e da Google criando o Kubernetes, por exemplo, porém, posso te dizer que essa ideia de disponibilidade quase que 100% do tempo surgiu muito tempo atrás com uma linguagem criada na famosa empresa de telefonia Ericsson, com liderança de Joe Armstrong, que infelizmente faleceu em abril de 2019. Esta linguagem surgiu pra resolver um problema de concorrência que a Ericsson e outras empresas de telefonia estavam tendo nos anos 80. Os maiores pontos positivos dessa nova ferramenta eram: distribuição, tolerância a falhas e alta disponibilidade para mudanças no código sem precisar reiniciar a aplicação, resolvendo grande parte dos problemas das telecomunicações no passado. Em 1998, a linguagem se tornou open source, com seu código aberto para a comunidade que logo se interessou pelo poder da disponibilidade desta, e de seus componentes. Após isso ela foi usada para construir o RabbitMQ, sistema de broker e mensageiria muito utilizado, o XMPP, protocolo muito comum nas comunicações em tempo real (exemplo whatsapp).

"Destrua um dos meus recursos e eu ficarei ainda mais forte"

Claro que poderíamos falar do grande José Valim, brasileiro que trabalhar no time do Ruby on Rails e decidiu criar uma linguagem com base no Erlang, porém com uma sintaxe parecida com Ruby, de modo a resolver os problemas de concorrência da linguagem. Porém, gostaria de dizer que a capacidade auto-gerenciável do Erlang, na minha opinião, foi a primeira experiência que tivemos com sistemas com alta disponibilidade e foi o que influenciou os orquestradores modernos. Até hoje o Erlang puro é relevante, e não só a linguagem, mas também a teoria por trás de teoria de filas e toda a questão de telecomunicação que esse tema. A máquina virtual do erlang e o OTP (conjunto de bibliotecas que funcionam como middleware), são ferramentas muito poderosas, e algumas linguagens de programação se inspiraram nesse "toolkit".

pra fechar, uma homenagem maravilhosa à esta linguagem

Por mais que hoje, a telefonia pareça estar atrasada, se comparada às aplicações web, pode ter certeza que esta mesma se tornou fundamental para desenvolvimento de vários conceitos amplamente usados na sua melhoria, não só práticos, mas também teóricos, já que teoria de filas e pesquisa operacional, por exemplo, são temas amplamente estudados na tecnologia moderna também.