JS vs JS · "Serverless" · Desenvolver uma webapp para um servidor não monolítico

Wednesday 28 April 2021

Starts 18:30 PM

Finishes 20:30 PM


Organized by JavaScript vs JavaScript


Venue: Online/Virtual

Address: Online event on your device
8600 Lisboa

Go to this event

About this event

Com a vinda de Google App Engine em 2008, empresas e empresários têm a sua disposição uma ferramenta nova para a publicação de web apps: o “serverless”. Mas o que é “serverless”? E quais as consequências para os processos de desenvolvimento e publicação de web apps?

”’Serverless’ is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers.”

https://en.wikipedia.org/wiki/Serverless_computing

Como podemos aproveitar do “serverless”, quando, por motivos financeiros ou de manutenção, escolhemos programar apenas em JavaScript?

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

À primeira vista, recorrendo a “serverless”, podemos criar apps em JavaScript que executar-se-ão sem haver necessidade de servidores. Mas isso é falso.

O termo “serverless” é de facto mal escolhido: webapps sempre serão publicadas num servidor web, mas será o fornecedor do servidor web, p.ex. cloud.google.com ou aws.amazon.com, que tomará conta da execução do servidor quando houver visitas à web app.

Em consequência, quando uma web app não é visitada, não existirá um servidor web. Somente nesses momentos será a nossa webapp realmente “serverless”. Em outras palavras, durante os períodos sem visitas à web app, efetivamente não existirá um servidor.

Mas um termo melhor teria sido p.ex. “dynamic server” ou “servidor instantâneo”.

Uma outra grande vantagem, além da desnecessidade de termos de gerir servidores, é que não se paga quando não há visitas à webapp. Efetivamente, o custo torna-se muito mais baixo, para webapps que não têm visitas o tempo inteiro.

Sim, o “serverless” é uma boa opção para webapps, cuja utilização não é contínua (por ser p.ex. apenas visitada durante horas laborais ou por ainda não ser muito conhecida ou popular).

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

Não obstante, apesar de parecer uma solução atraente e barata, o uso de “serverless” tem as suas particularidades. P.ex. o uso de “http sessions”, que pode envolver a escrita de dados do lado do servidor, pode tornar-se problemático. É nomeadamente assim que os servidores utilizados não têm acesso a um disco duro (ou apenas a um disco temporário). Dados escritos no disco temporário desaparecerão quando o servidor desligar, tipicamente após 20’, ou se um novo servidor for lançado.

Pode até acontecer que 2 visitas do mesmo cliente são servidas por 2 servidores distintos, ambos ignorantes da existência do outro (e ignorantes dos dados nos mútuos discos temporários). O “serverless” é de facto “stateless”, e o uso de e.o. “cookies” pode tornar-se problemático.

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

Felizmente, é possível criar apps potentes a serem publicadas numa plataforma “serverless”. Um exemplo são as tais “single page” webapps (às vezes referidas como “progressive webapps”), que demonstram que é possível interagir com o nosso cliente, sem que haja necessidade de carregar novas páginas após cada interação.

Nessas situações a webapp poderá ainda dispensar do uso de cookies também e ser “cookieless”. Quando uma app consiste em apenas 1 página, não haverá necessidade de gerir as tais “http sessions” do lado do servidor e não haverá problemas de desaparecimento de dados em disco temporários.

Neste mini-curso, codificator.io irá ensinar como desenvolver uma “single page” web app em JavaScript sem “cookies”, executado numa instância “serverless” de Node.

O participante neste evento apreenderá que também


This page last updated Monday 8 March 2021 at 23:50.

Problems? Report an error or inappropriate listing here.

Information displayed here is provided in good faith but we are not responsible for the content of any listing. Sometimes events can be cancelled or changed at short notice. Please check with the venue or organizer before you travel!