Apresentado em 2014, o JAMStack é uma abordagem moderna para construir sites e aplicações mais rápidas, seguras, escaláveis e com bom desempenho. Em vez de ser comercial, o JAMStack é um conjunto de boas práticas e fluxos de trabalho construídos em comunidade para maximizar a eficiência de construção de sites.
Atualmente, há mais de um milhão de desenvolvedores e empresas usando o JAMStack com várias plataformas para rodar projetos globais, sem precisar lidar com servidores, DevOps ou infraestruturas caras. Em vez disso, o JAMStack usa tecnologias que já conhecemos:
- Javascript como a linguagem principal;
- APIs de HTTP em vez de bancos de dados específicos; e
- Markups pré-construídos como o sistema de entrega.
O recurso mais impressionante do JAMStack é a velocidade. Quando a Smashing Magazine mudou de Wordpress para JAMStack, o tempo de entrega de conteúdo HTML despencou de 800ms para 80ms. Velocidade não é apenas divertido, é crucial para os negócios: estudos mostram que atrasos de um segundo no tempo de carregamento pode fazer um site de ecommerce perder 7% de suas conversões. A BBC perde 10% de seus usuários para cada segundo adicional que seu site demora a carregar.
Se 29% da internet hoje roda em Wordpress – incluindo blogs, sites de notícias e lojas online – imagine o quão mais seguro e eficiente a internet poderia ser se todos seguissem as práticas do JAMStack. Além de tornar a internet melhor, mais rápida e mais forte, o JAMStack também permite que os desenvolvedores trabalhem de forma mais tranquila e fácil do que se fossem usar construtores de sites tradicionais como o Wordpress.
Mas qual o problema do jeito antigo?
É lento e vulnerável. O método tradicional de construção de sites é conhecido como Monolítico. Nessa abordagem, os dados passam por uma grande jornada no banco de dados, é renderizado em um template, processado para HTML e finalmente atravessa um oceano inteiro de rede (às vezes, literalmente) para chegar ao navegador. E isso acontece para cada uma das requisições online. Dá exaustão só de pensar.
Além de tornar as requisições mais lentas, abordagens monolíticas em construções de software têm outras desvantagens. Elas requerem softwares muito dependentes, assim como dependem de linguagens e frameworks, e são fáceis de quebrar e difíceis de equipar com novas funcionalidades.
Instalar atualizações em sites e aplicações muito grandes pode desestabilizá-los por tempo considerável. Corrigir bugs, atualizar bibliotecas ou alterar frameworks de uma área podem danificá-lo em outra. Caching pode ser utilizado entre as fases para aumentar a velocidade de sites mais pesados, mas pode ser muito difícil fazer isso em sites dinâmicos.
Outra dificuldade dos sites monolíticos é a segurança. De acordo com estudos recentes, 29% da internet roda em Wordpress, seguido por Joomla e Drupal. Por esses sistemas de gerenciamento serem tão populares ao redor da Internet, eles são muito suscetíveis a ataques maliciosos, considerando, especialmente, que todas as suas páginas e plug-ins são combinadas em um enorme código base para um único projeto. Para manter a segurança desses projetos, os desenvolvedores precisam correr atrás de muitos pacotes de segurança; e é muito comum que estas atualizações venham cheias de erros e danifiquem o site inteiro.
E como o JAMStack pode melhorar a internet?
Novamente, o JAMStack significa JavaScript, APIs e Markup. Esses são os três componentes para criação de sites mais rápidos e dinâmicos. Eles são vitais para usuários de celular, onde o tempo de carregamento conta mais a banda nem sempre é das melhores. O JAMStack não é uma tecnologia nova, mas uma abordagem moderna na construção de sites com recursos que já conhecemos.
Quando comparamos a arquitetura tradicional da Internet com a abordagem muito mais simples do JAMStack, podemos notar vários benefícios, especialmente: velocidade, segurança e escalabilidade. Desenvolver em JAMStack é flexível e intuitivo e permite aos desenvolvedores exercerem sua criatividade, em vez de ficarem confinados em uma infraestrutura rígida e monolítica.
Velocidade
Mencionamos o quanto a Smashing Magazine acelerou com seu site novo e aprimorado site, depois que trocaram a infraestrutura de Wordpress para JAMStack. Quando o Pinterest foi reconstruído, o tempo de espera caiu 40%, aumentando o tráfego de SEO e as taxas de conversão. Essas taxas de conexão mais velozes são possíveis graças aos recursos estáticos do JAMStack, que podem ser entregues com muita rapidez.
A palavra “estático” engana um pouco. Na verdade, projetos em JAMStack podem ser bem dinâmicos, até mais do que sites monolíticos. Quando dizemos estáticos, queremos dizer que o HTML fica alojado em vários servidores diferentes e pode ser carregado de um que está mais próximo fisicamente do cliente. Com o JAMStack, os dados viajam uma distância bem menor que em arquiteturas tradicionais e monolíticas. Cada vez que o conteúdo é requisitado por um usuário, em vez de dar a volta ao globo, vindo de um único servidor, os dados passam por vários CDNs (Redes de Entrega de Conteúdo – Content Delivery Networks) ou microsserviços para chegar a seu destino.
Pense como em um restaurante. Em sites monolíticos, os servidores precisam preparar um prato novo toda vez que alguém pede comida (dados). Mas, com JAMStack, os pratos estão pré-feitos, prontos para serem finalizados e servidos imediatamente. Alguns clientes podem não ligar para olhar pela janela e bater um papo enquanto esperam, mas usuários de celular são como paulistanos ocupados que precisam do pão de queijo agora antes de pegar o metrô para a próxima reunião de trabalho.
Segurança
Sites monolíticos que rodam em servidores pesados são como grandes empresas. Um pouco de fogo no almoxarifado pode facilmente falir o empreendimento inteiro. Mas, quando você espalha seus funcionários em várias pequenas estações de trabalho – ou até permite que eles trabalhem de casa ou do seu café preferido –, fica difícil chegar em todos os trabalhadores e roubar todos os post-its da empresa ao mesmo tempo.
Sites serverless funcionam de maneira similar. Eles não ficam guardados em um único banco de dados, mas em vários CDNs que são bem mais difíceis de atacar. Sua arquitetura também dá um pouco de espaço para os desenvolvedores respirarem quando um dos microsserviços deixarem de funcionar. Já que são independentes, se um dos microsserviços der bug, os outros não serão necessariamente afetados. O JAMStack também funciona com menos código – ou área de superfície – do que sites tradicionais, o que significa que há menos chances de serem atacados e menos vulnerabilidades que precisam ser arrumadas constantemente.
A ótima segurança do JAMStack vem desses três princípios:
- área de superfície mínima com uma infraestrutura com hospedagem apenas para leitura;
- separação entre o frontend e o backend para evitar que os serviços sejam expostos ao público; e
- ecossistema de APIs seguros e independentes.
Com JAMStack, desenvolvedores não precisam fazer manutenção do backend de um site como fariam no Wordpress, com todos os pacotes de segurança e atualizações defeituosas. Em sistemas read-only, a única coisa que os clientes conseguem acessar é o frontend, já que o backend armazena somente o banco de dados das APIs.
Escalabilidade
Imaginemos que você construiu um pequeno blog sobre cuidados de animais de estimação, mas em alguns meses ele cresce muito mais do que você esperava. Afinal, sua pesquisa é forte e as fotos dos seus cachorros são uma gracinha. Agora você precisa pagar mais caro em hospedagem para lidar com o tráfego maior e evitar que seu site caia.
Em projetos de sites monolíticos, desenvolvedores precisam se antecipar à quantidade de tráfego que um site receberá e se planejar de acordo com isso, o que é uma experiência cara e difícil de acertar. No JAMStack você não precisa se preocupar com isso; uma vez que funciona com HTML pré-renderizado e entrega global, seus projetos podem escalar o quanto precisam sem se sobrecarregar ou cair.
Experiência de desenvolvimento
JAMStack é ótimo para a experiência do usuário e tal, mas vai facilitar a sua vida? Na verdade, sim. Apesar de o JAMStack ser programado em JavaScript, desenvolvedores também podem usar Python, Go ou Ruby para a lógica de programação. JavaScript foi escolhido apenas porque é a linguagem mais usada na Internet hoje em dia. Você também pode usar uma gama de ferramentas e convenções para adaptá-lo melhor ao seu fluxo de trabalho. Lembre-se: o JAMStack é uma abordagem criativa, não uma plataforma talhada em pedra.
E mais, você pode usar plataformas para uma integração automática e para fazer deploy dos seus projetos diretamente do seu sistema de git preferido. Isso torna a experiência muito mais tranquila. Em vez de perder tempo consertando bugs, desenvolvedores podem usar toda a sua criatividade e talento para construir sites rápidos, divertidos e de bom desempenho.
O JAMStack quer você!
A melhor coisa sobre o JAMStack é que torna a Internet um parquinho divertido e revolucionário novamente. Por parte do desenvolvedor, pode levar um tempo para se acostumar a princípio, mas você vai acabar se apaixonando por ele.
Se você quiser saber mais sobre JAMStack, você pode visitar a página oficial. A conversa serverless está rolando agora mesmo e você pode fazer parte dela no Twitter, em eventos globais ou na comunidade oficial do JAMStack no Slack. Para começar seu site em JAMStack, você pode usar o Azion Edge Platform para entregar seu conteúdo e o Edge Functions para personalizá-lo.
Há, no entanto, alguns casos em que é melhor não usar o JAMStack. Se o seu site estiver “muito bem, obrigado”, mudar toda a sua infraestrutura pode ser um exagero – por enquanto. Mas, se você estiver começando um projeto do zero, ou refazendo algo que te deu trabalho no passado, considere usar o JAMStack. Dará uma experiência maravilhosa para os seus usuários e também será bem legal para você.