Por que utilizar Node.js?

Neste artigo irei fazer uma descrição breve de Node.js e, ao final, espero despertar o interesse de vocês para estudar esta ferramenta leve, versátil e poderosa.

Criado em 2009 por Ryan Dahl, Node.js não é nenhum framework JavaScript, nem tão pouco uma nova linguagem de programação, mas sim, uma plataforma para construir aplicações WEB escaláveis. Seus códigos são escritos em JavaScript que são interpretados pela máquina virtual V8-engane criada pelo Google e utilizada nos navegadores Chrome e Chromium (open source). Node.js é orientado a eventos e o processamento de requisições I/O (input e output) não-bloqueante. O que o torna leve e eficiente, ideal para aplicações em tempo real com troca intensa de dados através de dispositivos distribuídos.

Mas, por que usar Node.js ao invés de linguagens fortemente tipadas e orientadas a objetos em rede escaláveis? Quando você pensa em reduzir custos com infraestrutura e aumentar o desempenho de projetos, você pensou em Node.js. Linguagens de programação, como por exemplo o Java, criam uma nova thread1 a cada conexão, e, para criar uma thread é necessário alocar uma certa quantidade de recurso. Vamos supor que sempre será alocado 2MB a cada thread criada, você deve estar pensando “Isso não é nada, qual o problema com essas tecnologias?” Porém, vamos colocar em um cenário em que milhares de usuários estão acessando o mesmo servidor. Para cada usuário conectado será criada uma nova thread, em um sistema que apresente apenas 16 GB de memória, 8000 usuários seria o suficiente para alcançar o consumo total desse recurso. Então, para suportar mais usuários, deveria ser adquirido mais memória ou mais servidores, ou seja, mais custo com a infraestrutura.  O Node é capaz de processar dezenas de milhares de conexões simultâneas utilizando apenas uma única thread, pois, apresenta uma programação assíncrona que compartilha recursos e um I/O não bloqueante. Portanto, a cada requisição a máquina virtual V8 verifica o que tem de ser feito, delega a atividade e volta a atender novas requisições enquanto esse processamento paralelo está acontecendo utilizando pouquíssimo recursos de hardware.

Além desse fator, quais outros motivos influenciam na escolha do Node.js para o desenvolvimento server-side ?

  • A maioria dos BackEnds não fazem computações complicadas.
  • Nossos programas passam a maior parte do tempo lendo ou escrevendo no disco.
  • Node.js Realiza de forma simples e eficiente a computação de dados em streaming devido ao seu I/O não bloqueante.
  • Node.js Foundation em 2016 mostrou que 96% dos envolvidos em projetos de IoT estão usando JavaScript/Node para o desenvolvimento.
  • Node.js apresenta frameworks que interagem em tempo real entre o cliente e o servidor.
  • Node.js cria APIs que são facilmente escaláveis.
  • Node.js é muito leve e é multiplataforma.
  • Node.js permite Javascript full-stack.

Mas será que existem empresas que usam essa tecnologia? Sim, algumas das maiores empresas do mundo utilizam essa tecnologia:

  • Walmart: em 2013, resolveu passar todo tráfego mobile pelo Node.js na black-friday (o período mais movimentado do ano) e seus servidores não passaram de 1% de utilização, mesmo em um deploy com 200 milhões de usuários online.
  • PayPal: Um pouco mais conservadores que as outras empresas, a PayPal reformulou, inicialmente, apenas a tela de resumo da conta – “uma das mais visitadas do site”. Para testar de forma segura, eles desenvolveram a plataforma em Node.js e Java. O time que usou Node.js desenvolveu duas vezes mais rápido, com menos pessoas, 33% menos linhas de código e 40% menos arquivos. Em relação à performance da aplicação, a versão com Node.js conseguiu atender o dobro de usuários por segundo do que o Java, atingindo a média de 35% mais velocidade na entrega das requisições.
  • Groupon: Diminuiu em 50% o tempo de carregamento da página.
  • Netflix: Mais que 30% do time do Netflix trabalha com Node em produção e eles dizem que “você vai de 0 a 100 com Node muito rápido, você consegue fazer as coisas funcionarem rapidamente”.
  • LinkedIn: maior rede social profissional do mundo relançou seu app mobile em 2011 usando Node.js como backend, eles conseguiram melhorar a velocidade do seu sistema em 20x ao mesmo tempo em que reduziram o número de servidores em 90%.

O Node.js está se fazendo presente em grandes empresas, desde as mais simples aplicações, até um sistema inteiro de comércio eletrônico. E aí, o que acharam ? Vale a pena reservar uns dias para aprender Node ? Espero que tenham gostado e que a partir desse artigo vocês deem os seus primeiros passos com desenvolvimento em Node.js!

 

Por David Santos
Desenvolvedor de Inovação e Tecnologia do ISI-TICs
https://www.linkedin.com/in/david-santos-b6047314b/

1- Thread: Em computação é um encadeamento de execução de tarefas que podem ser executadas concorrencialmente.

Imagem em destaque: railsware.com

Deixe uma resposta