O que dizer (além do que já foi dito aqui) desta tecnologia que chegou na Umbler há pouco, mas que já consideramos pacas? Sim, nós aqui na Umbler amamos o Node.js, não restam dúvidas. Agora, o que será que as grandes empresas do mundo pensam a respeito desta tecnologia? O que pensam os gestores que optam por migrar um sistema inteiro para uma nova linguagem, ou, neste caso, um novo runtime? Por que empresas, gigantes em seus mercados, arriscam optam por uma mudança tão drástica? O que elas ganham com isso? E o mais importante: o que podemos aprender com esses vanguardistas?
Mas, primeiro: o que é Node.js?
Nunca é demais relembrar: o Node.js é um runtime de JavaScript, criado pelo desenvolvedor Ryan Dahl em 2009 e que, desde seu anúncio, vem ganhando espaço de destaque entre profissionais de tecnologia do Brasil e do mundo. Isso porque o Node.js, que é desenvolvido em cima do motor JavaScript V8 – engine criada pelo Google e utilizada nos navegadores Chrome e Chromium (open source) -, leva o processamento e renderização do código JavaScript para o lado do servidor (back-end). Isso, aliado ao fato de suas requisições I/O (input e output) serem não bloqueantes, possibilita criar aplicações rápidas, escaláveis e estáveis.
Há oito anos, quando foi apresentado ao mercado, os desenvolvedores iniciaram sua utilização de forma muito tímida. A culpa disso, em partes, foi da comunidade de desenvolvedores Ruby, que na época era conhecida (e criticada) por sua postura exclusivista. Se este padrão se repetisse na comunidade Node.js, seria o suficiente para desencorajar os desenvolvedores a desbravar a nova tecnologia. Mais tarde, neste mesmo ano, foi lançado o npm (Node Package Manager), repositório oficial de dependências para aplicações Node.js, dando um gás – e muitas possibilidades – à comunidade (publicamos recentemente um conteúdo sobre npm e Yarn que você pode ler aqui).
Durante o ano seguinte, em 2010, Ryan seguiu apresentando sua criação em diversos eventos e meetups de peso, como o Google Tech Talk (vídeo aqui). Em 2011, um grande acontecimento reforçou a certeza de que Node.js chegou para ficar: a Microsoft lança uma versão nativa do Node.js para seu sistema operacional, o Windows. A partir daí, diversas empresas começaram a entrar nesse novo universo. O LinkedIn, precursor, passa a usar Node.js em sua aplicação web e lança, neste mesmo ano, sua nova versão do App para mobile, já com esta tecnologia. A Uber segue o mesmo rumo, redesenhando todo seu sistema para rodar com Node.js.
Durante os anos de 2012, 2013 e 2014, vários frameworks para Node.js (como o Hapi e o Ghost) foram desenvolvidos e lançados pela comunidade. Ao final do ano de 2014, alguns desenvolvedores anunciaram a intenção de criar um comitê de conselho para o Node.js. Este era o primeiro vislumbre do que viria a ser a Node.js Foundation.
Fundado em 2015, o Node.js Foundation conta com a participação de empresas gigantes de seus setores, como a própria Microsoft, IBM, RedHat, Google, Yahoo!, PayPal, entre outras. Hoje, o projeto Node.js já conta com a colaboração de mais 1650 desenvolvedores ao redor do globo. Isso faz do Node.js uma tecnologia sólida, bem distante da modinha que parecia ser no princípio.
Legal, mas e as empresas que usam Node.js?
OK, OK, acalme o seu coração! Vamos falar sobre algumas das maiores empresas do mundo. Vamos mostrar como (e porque) elas passaram a utilizar o Node.js em suas aplicações e, o mais importante, o que elas ganharam com isso. Preparados? Vamos lá!
O LinkedIn, a maior rede social orientada a profissionais de diversos setores, sentia na pele a necessidade de focar na solução para velocidade da sua aplicação. Literalmente uma corrida contra o tempo. Foi então que, em 2011, lançou a nova versão do seu aplicativo mobile, fazendo uso de Node.js e HTML5.
O líder de desenvolvimento na LinkedIn, Kiran Prasada, disse, em entrevista ao VentureBeat, que o desenvolvimento em Node.js “foi rápido, acima de qualquer padrão”. Você pode ler a entrevista na íntegra aqui (em inglês).
Netflix
A Netflix é líder no serviço de streaming de mídia e vídeos on-demand. Sua plataforma, até então desenvolvida em Java, exigia a manutenção de dois sistemas diferentes (front e back-end), além de possuir builds demoradas e precisar de máquinas muito potentes para o desenvolvimento. Para se ter uma ideia, a aplicação levava aproximadamente 40 minutos para ser inicializada. Para uma plataforma direcionada a dados (data-driven), com inúmeros testes A/B que são executados a cada interação do usuário, estava cada vez mais inviável manter as toneladas de dados processados a cada clique rodando como estava.
Ao optar por utilizar JavaScript e Node.js, a Netflix foi capaz de transformar todo seu site em uma aplicação simples e, com isso, reduzir em 70% o tempo de inicialização de sua aplicação. Isso tornou sua plataforma muito mais rápida (e seus mais de 93 milhões de clientes mais felizes). Conheça o case completo assistindo ao vídeo abaixo.
IBM
A IBM foi outra das grandes a abraçar o Node.js. Em 2015, Myles Borins recebeu a tarefa de trabalhar em um utilitário de teste para módulos e frameworks para Node.js, o The Canary in the Gold Mine (CITGM). Este utilitário testa e gera relatórios completos sobre qualquer tipo de aplicação. Segundo Myles, o CITGM foi capaz de encontrar e relatar os mais diversos tipos de regressões em todo o ecossistema, incluindo o próprio núcleo do Node.js.
Uber
A empresa Uber foi uma das primeiras a utilizar o Node.js em sua aplicação, iniciando ainda na versão 0.8.0 (a versão atual é 8.5.0). Desde a versão 0.10 a Uber já relatava melhora no desempenho e estabilidade da plataforma. Parte do core dos sistemas dessa empresa, mais especificamente os sistemas distribuídos e bases de dados geoespaciais, hoje, é escrito em Node.js.
O engenheiro Sênior da Uber, em uma palestra para a The Node.js Conference, fez a seguinte afirmação (tradução livre): “A coisa que eu mais gosto no Node.js é o quanto de poder que eu, pessoalmente, passei a ter com ele. A facilidade com a qual consigo fazer coisas com Node.js amplificou o meu poder enquanto desenvolvedor.”
Confira a apresentação completa no vídeo abaixo.
Walmart
A Walmart, maior varejista do mundo, levou a utilização do Node.js a um novo patamar. Em 2013, a tecnologia Node.js foi utilizada em seu site mobile com foco no Black Friday. Para a Walmart, a utilização do Node.js se mostrou muito, mas muito, vantajosa.
Em uma entrevista ao VentureBeat, Ben Galbraith e Dion Almaer, presidente e vice-presidente, respectivamente, do departamento de mobile da Walmart, afirmaram ter ganhado (e muito) em desempenho. Para traduzir em números, no Black Friday anterior a Walmart havia registrado tráfego de 200 milhões de usuários. Utilizando Node.js em seu site mobile, os servidores não chegaram a utilizam nem 1% da sua capacidade de processamento. Dion ainda afirma que “ele (o Node.js) é perfeito para o que estamos fazendo em mobile.” Você pode ler a matéria completa aqui (em inglês) e assistir ao vídeo mantido pela Joyent aqui.
PayPal
Esta é outra das grandes empresas a investirem na re-arquitetura de sua aplicação para os moldes do Node.js. 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”, segundo Jeff Harrell. Para testar de forma segura, eles desenvolveram a plataforma em Node.js e Java, rodando as duas versões paralelamente para identificar qual tinha o melhor desempenho. Você arrisca o resultado? Sim, Node.js ganhou.
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.
Estes e outros detalhes da utilização do Node.js no PayPal podem ser encontrados neste vídeo:
Dow Jones
A editora estadunidense Dow Jones (responsável pelo jornal financeiro mais famoso do mundo, o The Wall Street Journal), já usava JavaScript em seus projetos. Os desenvolvedores começaram a utilizar Node.js, pela primeira vez, em 2011. Segundo Scott Rahner, líder de desenvolvimento da empresa, a tecnologia foi utilizada para uma aplicação experimental de leitura do Facebook chamada The Wall Street Journal Social. O resultado, como você já deve imaginar, foi que a aplicação teve um desempenho muito acima do esperado. Não apenas a performance da aplicação em si, mas o tempo de desenvolvimento foi consideravelmente menor do que o esperado.
O sucesso obtido com o Node.js foi tanto, que o CTO da Dow Jones convenceu a alta cúpula da empresa a apoiar a tecnologia. O resultado disso é que, hoje, o Node.js é a tecnologia primária da empresa, sendo atualmente utilizada para a maioria dos projetos, especialmente os produtos para os consumidores.
Maiores detalhes sobre os testes da Dow Jones podem ser encontrados nesta matéria (em inglês).
O que aprendemos com tudo isso?
Muitas das empresas que colaboram ativamente com a comunidade Node.js, como Google e Yahoo!, por exemplo, não divulgam abertamente como fazem uso da tecnologia, ou quais foram seus resultados, mas ainda assim, considerando que “colaboram ativamente com a comunidade Node.js”, podemos imaginar que devem ter, sim, ótimos resultados.
Com base nestes relatos (e em tantos outros disponíveis na internet), podemos observar que as aplicações das empresas que se aventuraram com o Node.js melhoraram, basicamente, em três grandes fatores:
Produtividade dos times de desenvolvimento
Estamos falando de JavaScript aqui. Lembra da pesquisa da Stack Overflow? Se mais de 62% dos desenvolvedores entrevistados têm como linguagem preferida o JavaScript, é natural que estes desenvolvedores produzam mais (e melhor) trabalhando com uma linguagem que é familiar. Desenvolvedores felizes fazem bons códigos (lembre-se disso).
Performance/Desempenho das aplicações
Assíncrono e com Inputs e Outputs não bloqueantes, o Node.js foi feito pensando em performance. Aplicações mais rápidas resultam em boa experiência de usuários. Uma boa UX resulta em usuários mais mais satisfeitos. E, por sua vez, usuários satisfeitos resultam em mais faturamento (lembre-se disso também).
Economia de recursos
Por fim, mas não menos importante: a economia. Com base apenas no relato da Walmart, em que sua aplicação mobile consumiu menos de 1% da capacidade de processamento do servidor (e veja bem, recebendo mais de 200 milhões de usuários por minuto) mostra que o Node.js não está de brincadeira.
Para concluir, é importante ter em mente que, apesar de já estar com longos oito anos de vida, o Node.js ainda é uma criança em desenvolvimento. Ganhando cada vez mais poder (e com ele, mais responsabilidades!), 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. Sendo assim, você deveria considerar o Node.js como um forte candidato à sua lista de dev skills, pois o futuro desta tecnologia é promissor.
E aí, o que achou do post? Já deu os seus primeiros passos com desenvolvimento Node.js? Deixe seu relato nos comentários e até a próxima 🙂
Dica! Se quiser aprender ainda mais sobre Node.js, confira nossos materiais especiais sobre o tema no Umbler Academy.