Jump to content

Desvendando o Serverless


Postagens Recomendadas

O que é serverless? 

   Serverless pode ser traduzido como sem servidor, e é exatamente esse seu propósito, executar trechos de código de uma determinada linguagem de programação sem a necessidade de se preocupar com o gerenciamento de servidores e infraestrutura. Essa tecnologia conta com escalabilidade automática, alta disponibilidade e otimização de custos pagando apenas pela utilização.

Soluções serverless

   As soluções serverless costumam ser divididas em:

  • back-end como serviço (BaaS): é plataforma de serviço que automatiza o backend e infraestrutura necessária para a aplicação.
  • função como serviço (FaaS): é um modelo de execução de computação orientado a eventos. Com ele, os desenvolvedores gravam a lógica, que é implantada em containers totalmente gerenciados por uma plataforma e executada sob demanda.

Caso de uso

   Essa tecnologia é ideal para processar demandas assicronamente e isoladas, como por exemplo processar arquivos em lote, usando o serverless uma evento é gerado que nesse caso é a chegada desse lote, se o serviço estiver parado ou não estiver rodando, ele é buildado e iniciado chamando a tarefa de processamento, após finalizada é verificado se tem mais tarefas a serem realizadas caso não o serviço é eliminado, gastando menos recursos da máquina e gerando um custo bem menor que uma máquina rodando direto.

Node.js e Serverless

   Agora chegou a melhor parte criar um serverless simples usando node.js de forma rápida e pratica. Aqui vamos usar o serverless framework (https://www.serverless.com/framework/docs/getting-started) uma ferramenta npm criada para facilitar ainda mais o desenvolvimento com serverless, para esse exmplo está sendo usada a versão do Node.js 16.15.1.

Primeiramente é necessário installar o serverless globalmente :

npm i serverless -g

Agora vamos criar um projeto serverless usando o comando:

serverless

Ao finalizar é criada a seguinte estrutura:

Screenshot from 2022-10-28 09-38-02.png

Basicamente um arquivo handler.js com uma função que será executada, um arquivo serverless.yml com as especificações do serverless que estamos criando, um .gitignore básico e um README padrão demostrando o processo de deploy.

é importante destacar o arquivo serverless.yml, responsável por todas as diretivas que regem a aplicação que estamos criando:

Screenshot from 2022-10-28 09-46-44.png

Explicando os pontos mais importantes do arquivo serverless.yml:

  • service: nome do nosso serviço
  • frameworkVersion: versão do framework do serverless que será usada

  • plugins: São códigos que são adicionados ao serverless e que incrementam ou estendem comandos existentes

    • No print acima usamos o serverless-offline como plugin para que possamos fazer todos os processos que o serverless executa para deploy mas local.

  • provider: Aqui indicamos o responsável por gerenciar a infraestrutura necessária para a aplicação e também é indicado o runtime no nosso caso é o node.js na versão 14, mas poderia ser também outra linguagem caso o projeto fosse utilizar outra como por exemplo python.

  • functions:  Aqui será indicada quais funções serão executadas pelo serverless

    • hello: o nome da nossa função no serverless (pode ser usado qualquer nome)

    • handler: o método que será executado na chamada da função

    • events: são os eventos que irão disparar nossa função, no exemplo da imagem acima é uma chamada HTTP do tipo GET ao caminho raiz /. Lembrando que o serverless gera uma rota para nossa api indicada com os path que existem no arquivo.

Vamos installar também o serverless offline para podermos testar nossa aplicação localmente sem precisar subir em nenhuma infraestrutura:

npm i serverless-offline -D

Altere o arquivo handler.js para retornar um hello world e não todo o evento:

Screenshot from 2022-10-28 10-10-54.png

Agora sim, tudo pronto, vamos rodar nosso serverless local e ver se está ok, basta rodar o comando: 

serverless offline

Ápos isso no terminal é indicado as rotas geradas:

Screenshot from 2022-10-28 10-09-23.png

Depois, basta agrir essa rota GET no navegador usando a URL http://localhost:3000/ e o resultado é o Hello world adicionado a função:

Screenshot from 2022-10-28 10-11-19.png

Agora é só editar o arquivo handler.js como quiser e processar a sua demanda com sucesso.

 

Referências

https://www.redhat.com/pt-br/topics/cloud-native-apps/what-is-serverless

https://aws.amazon.com/pt/serverless/

https://blog.back4app.com/pt/backend-as-a-service/

https://how.kovi.work/construindo-uma-aplicação-serverless-do-zero-cd0d70527d61

  • Curtir 3
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...